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

2024-04-18

我必须发出一个CTRL+MWebdriverIO 中的操作,但它不起作用。

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

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

以上均不起作用。谁能帮我?


简短的回答,NO. You 现在无法将关键命令与任何驱动程序配置链接起来。.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 社区的一个已知问题,直到驱动程序 (chromedriver, geckodriver等)实现 Webdriver 的新 W3C 用户输入标准,操作API https://w3c.github.io/webdriver/webdriver-spec.html#actions;
  • 没有其他方法可以做到这一点(相信我,我试过了!),除非你实际上可以替代你的功能CTRL + M通过代码执行操作;
  • 这里有一个BUG https://github.com/SeleniumHQ/selenium/issues/2611记录了 GeckoDriver (Firefox) 的此问题;
  • 即使.keys()方法适用于您当前的版本,克里斯蒂安-布罗曼确认它将是已弃用在下一个版本中(它也被标记为弃用/lib/protocol/keys.js定义文件)。

Note:对于使用不同 WDIO 命令遇到类似问题的任何人,不推荐使用.keys()(WDIO), .sendKeys()(WebdriverJS) 也适用于其他损坏的 WebdriverIO 方法,例如.moveTo()。了解更多相关信息here https://gist.github.com/maggiesavovska/760ce97ca2c0dd60367c1cb83d10fd72.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 WebdriverIO 中单击 CTRL+M (Control + M) 的相关文章