San*_*dro 5 testing end-to-end webdriver-io
使用webdriver.io我想用一个像shift或的修饰符来模拟点击ctrl.该keys()方法似乎做了类似的事情,但我不清楚如何再次释放修饰键,当我使用16(键代码shift)作为方法 - 链接的参数
时,它会引发错误.
背景:在我测试的网页中,我有一个与文件浏览器中的文件和文件夹相当的元素列表,可以用shift和选择多个元素ctrl.这很好用,现在我想用webdriver.io测试它.要做到这一点,webdriver.io例如必须单击一个元素,然后按shift,然后单击另一个元素,最后释放shift按钮.有没有办法做到这一点?
编辑ctrl:如果您想使用key选择不同的元素:
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.
});
Run Code Online (Sandbox Code Playgroud)
要使用键进行选择,shift请使用下面的代码(假设您要选择元素列表中的每个项目 - 显然您可以更改索引以获取元素列表的特定子部分)。它将移动到元素列表中第一个元素的左上角,然后单击鼠标左键,然后按 Shift 键,然后移动到最后一个元素的左上角,再次单击左键,然后释放该键shift:
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.
});
Run Code Online (Sandbox Code Playgroud)