如何在WebdriverIO中单击CTRL + M(Control + M)

时间:2017-05-12 12:39:50

标签: javascript mocha appium webdriver-io

我必须在WebdriverIO中发出 CTRL + M 操作,但它无效。

我尝试过使用不同的方法,例如:

  • 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');

以上都不起作用。任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:2)

简短回答,。您当前无法使用任何驱动程序配置链接键命令。 .keys()实际上仍然可以使用chromedriver(仅发送文本,没有链接),但它已被标记为弃用。有关详细信息,请参见下面的列表。

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

.keys()命令有什么问题?

  • 这是整个Selenium社区中的一个已知问题,在驱动程序(chromedrivergeckodriver等)为用户输入实现Webdriver的新W3C标准之前,不会在WebdriverIO中修复/解决这个问题, Actions API;
  • 没有其他方法可以做到这一点(相信我,我试过了!),除非您实际上可以通过代码替换CTRL + M操作的功能;
  • 这是一个BUG,它为GeckoDriver(Firefox)记录了这个问题;
  • 即使.keys()方法适用于您当前的版本,Christian-Bromann也确认在下一个版本中已弃用(它也标记为{{1}中的弃用定义文件)。

注意:对于在使用不同WDIO命令时遇到类似问题的任何人,/lib/protocol/keys.js(WDIO),.keys()(WebdriverJS)的弃用也适用于其他损坏的WebdriverIO方法,例如.sendKeys()。阅读更多相关信息here