2017-08-01 12 views
0

webdriverIOの文書によると、browser.keysコマンドはsendKeysコマンドのように動作しますが、暗黙的に鍵を解放するわけではありません。キーが解放されているどのようにwebdriverIOで鍵を解放する方法

http://webdriver.io/api/protocol/keys.html

私は、キーボードを使用して、フォームを逆方向に移動するためにコードを書いてみました:

browser.keys(['Shift', 'Tab']); 

しかし、次の入力ボックスにタイプで

は、テキストを大文字に。シフトキーがまだ押されているようです。

答えて

-1

なぜあなたはあなたが望むフォームをクリックするのに.clickを使用しないのですか?キープレスをシミュレートするよりも、CSSセレクターで作業する方がはるかに簡単です。あなたは一意のIDやクラスを見つけcan't場合

代替あなたはまた、プレースホルダや他のものとも、この

.click('a[href*="contact"]') 

作品のようなものを行うことができます。

// .moveToObject(selector,xoffset,yoffset); 
.moveToObject('#button', 0, -103) 
.buttonDown() 
.moveToObject('#button', 0, -104) 
.buttonUp() 

しかし、これは私はあなたがクリックする権利CSSセレクタを見つけるためにチャンスを持っていない場合は、マウスボタンを押し下げ、その後、それを解放するために使用するものです。あなたはwebdriver ioの右クリックをして、あなたがどこの場所にいるのかを見てから、この回避策を作ることができます。

+0

ありがとうございます!マウスを使用してアプリをナビゲートするための他の方法を知るのに常に役立ちます。 残念ながら、キーボードのみのユーザーがアプリをナビゲートできるかどうかをテストするための自動テストを作成しています。だから、このテストスイートでマウスを使ってナビゲートすることはできません。 – albertlockett

+0

ああ、自分であなたのawnserを見つけました:)しかし、良い2はあなたが2回押す必要があることを知っています – t33n

0

私はそれを理解したと思います。私はちょうど私が、webdriverをはKeyDownイベントのように最初Shiftを扱わなければならないと思います。この

browser.keys(['Shift', 'Tab', 'Tab', 'Shift']); 

とキーアップのような二Shiftのようにキーを2回送信する必要がありました。

したがって、上記のシーケンスは、キーボードを使用して逆方向のフォームナビゲーションを実行するための完全なkeysDown/keysUpシーケンスになります。

+0

これを見てください[SO Q&A](https://stackoverflow.com/questions/37392729/selenium-webdriver-javascript - タップアウト)。 – MikeJRamsey56

関連する問題