6

shiftwebdriver.io を使用して、 orのような修飾子でクリックをシミュレートしたいと思いますctrl。メソッドはそのkeys()ようなことをしているようですが、修飾キーを再度解放する方法が明確ではなく、16(key code for shift) をメソッドのパラメーターとして使用するとエラーがスローされます - link

背景: 私がテストした私の Web ページには、ファイル ブラウザーのファイルとフォルダーに相当する要素のリストがあり、それらの複数を と で選択することができshiftますctrl。これはうまく機能するので、webdriver.io でテストしたいと思います。これを行うには、webdriver.io は、たとえば、要素をクリックしてから を押しshift、次に別の要素をクリックして、最後にshiftボタンを離す必要があります。それを行う方法はありますか?

4

1 に答える 1

4

編集ctrl:キーを使用して別の要素を選択する場合:

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.
});

キーを使用して選択するには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.
});
于 2015-05-07T02:22:42.800 に答える