2017-05-12 4 views
2

WebdriverIOでCTRL + Mアクションを発行する必要がありますが、動作しません。WebdriverIOでCtrl + M(Control + M)をクリックする方法

Iのようなさまざまな方法を用いて試みた:

  • browser.keys('Control').keys('m');
  • browser.keys(['Control','KeyM', 'NULL']);
  • browser.keys(['Control', 'm', 'NULL']);
  • browser.keys('Control').keys('KeyM');
  • browser.deviceKeyEvent(82); browser.pressKeycode(82); browser.keys('MENU');

上記のどれも働いていません。誰でも助けてくれますか?

+0

「コントロール+ Mをクリックする必要があります」キーストロークをクリックしたいですか? –

+0

はい。ただし、モバイルキーボードはありません。 – Payal

答えて

1

短い答え、NO現在、は、すべてのドライバ設定でキーコマンドをチェーンできません。 .keys()は実際にはまだchromedriver(テキストのみの送信、チェーンなし)で動作しますが、廃止予定とマークされています。詳細は以下のリストを参照してください。 .keys()コマンドと間違っている何

Dependencies:

"selenium-standalone": "^5.11.2", 
"wdio-selenium-standalone-service": "0.0.8", 
"webdriverio": "4.8.0" 

Driver versions affected:

ChromeDriver: 2.29-x64-chromedriver 
GeckoDriver: 0.16.0-x64-geckodriverIEDriver: 
3.4.0-x64-IEDriverServer 

  • この

    は、セレンのコミュニティ全体に既知の問題であり、固定されることはありません/ドライバ(chromedrivergeckodriver、など)ユーザの入力、Actions API用webdriverを新W3C標準を実装するまでWebdriverIOに取り組みました。
  • 実際にあなたのCTRL + Mアクションの機能をコードで置き換えることができない限り、これを行う方法は他にありません(私を信じて、私は試しました!)。
  • ここにはGeckoDriver(Firefox)のこの問題を記載したBUGがあります。
  • .keys()方法は、現在のバージョンで作業していても、クリスチャン・Bromannは、それが次のリリース(それはまた/lib/protocol/keys.js定義ファイルの廃止のためにマークされている)でを廃止される予定を確認しました。

注:異なるWDIOと同様の問題を有する人のためコマンド、.keys()の廃止(WDIO)、.sendKeys()(WebdriverJS)も.moveTo()ような他の壊れWebdriverIO方法にも適用されます。それについての詳細はhereをご覧ください。

+0

@Payal、 'CTRL + M'コマンドによって引き起こされる動作は何ですか?とにかくコードで回避策を見つけるべきです。この問題で苦労している他のユーザーに表示されるように、回答を受け入れることを検討してください。 – iamdanchiv

+0

実際には、最初のボタンをクリックしています。その後、CTRL + Mをクリックする必要があります。その後、2番目のボタンをクリックする必要があります。最初のボタンをクリックした後、CTRL + Mをクリックして2番目のボタンを検索していません。存在しないので、タイムアウト後に '指定されたロケータを使用して要素を見つけることができません'というエラーが表示されます。 – Payal

+0

@Payal残念ながら、** WebdriverIO **の連鎖キーは私の上記のように現時点では不可能です。 'CTRL + M'コマンドをコードで(* .execute()経由で)エミュレートしようとすることはできます。 CTRL + Mはあなたのテストで何を達成しようとしますか? – iamdanchiv

関連する問題