2015-05-06 27 views
5

Webdriver.io ile kaydırma veya ctrl gibi bir değiştirici ile tıklamaları simüle etmek istiyorum. keys() yöntem böyle bir şey yapmak gibi görünüyor ama yine bir değiştirici tuşunu bırakın nasıl bana net değil ve ben yöntemi için parametre olarak (vardiya için anahtar kodu) 16 kullandığınızda bir hata atıyor - link.Webdriver.io ile ctrl-tıklama veya shift-tıklama nasıl simüle edilir?

Arka plan: Ben sınamak web sayfama yılında bir dosya tarayıcıda dosya ve klasörler ile karşılaştırılabilir unsurların bir listesi var ve onu vardiya ve ctrl olanların birden seçmek mümkündür. Bu iyi çalışıyor ve şimdi webdriver.io ile test etmek istiyorum. Bunu yapmak için, webdriver.io örn. Bir öğeyi tıklatıp kaydırma tuşlarına basın, sonra başka bir öğeye tıklayın ve son olarak kaydırma düğmesini bırakın. Bunu yapmanın bir yolu var mı?

+0

'client.keys ('Shift'). ButtonPress();'? – stanjer

+0

'düğmesiBasın()' (veya 'buttonDown()' ve 'buttonUp()') ne yazık ki fare için ve değiştirici için değil. – Sandro

+0

ama "değiştirici anahtar için" ne demek istiyorsun? Bunu yarın deneyeceğim :) – stanjer

cevap

4

Düzenleme:

client.elements(<css selector for your list of elements>, function(err, res) { 
    client 
     .moveTo(res.value[<index of element you want to select>].ELEMENT, 0, 0) 
     .keys('Ctrl') #every action after this within the scope of `client.elements` will have the `ctrl` key depressed 
     .buttonPress('left') 
     .moveTo(res.value[<index of element you want to select>].ELEMENT, 0, 0) 
     .buttonPress('left') 
     .moveTo(res.value[<index of element you want to select>].ELEMENT, 0, 0) 
     .buttonPress('left') 
     #repeat `.moveTo` and `.buttonPress` for every element you want to `ctrl` select 
     .keys('NULL'); #This command or `.keys('Shift') will release the `shift` key. 
}); 

aşağıdaki kodu kullanabilirsiniz shift tuşunu kullanarak seçmek için (eğer unsurların listenizdeki her öğeyi seçmek istediğiniz varsayarak: Eğer anahtar ctrl kullanarak farklı unsurları seçmek istiyorsanız - Belli ki, elementler listenizin belirli bir alt bölümünü almak için endeksleri değiştirebilirsiniz). Öğeler listenizdeki ilk öğenin sol üst kısmına gider, ardından sol tıklatır, sonra shift tuşuna basar, ardından son öğenin sol üst kısmına gider, tekrar tıklar ve shift anahtarını serbest bırakır:

client.elements(<css selector for your list of elements>, function(err, res) { 
    client 
     .moveTo(res.value[0].ELEMENT, 0, 0) 
     .buttonPress('left') 
     .keys('Shift') 
     .moveTo(res.value[(res.value.length-1)].ELEMENT, 0, 0) 
     .buttonPress('left') 
     .keys('NULL'); #This command or `.keys('Shift') will release the `shift` key. 
}); 
+0

Teşekkürler! Bu problemi çözdü. Benim için tekrar tuşlarını ('Shift') tekrar arayarak vardiya tuşunu serbest bırakmak için çalıştı. – Sandro

+0

@Sandro Sorun değil! Sadece merak ediyorum - '' tuşları '' ('NULL') '' '' için de onu serbest bırakın ya da sadece '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '} – Sid

+0

Denedim ve 'tuşları ('NULL')' anahtarı da serbest bırakır. Neden böyle olduğunu açıklayabilir misiniz yoksa bir yerde bir açıklama var mı? – Sandro

İlgili konular