我必须在 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);浏览器.pressKeycode(82); browser.keys('MENU');
以上均无效。谁能帮帮我?
最佳答案
简短回答,否。您目前无法将关键命令与任何驱动程序配置链接起来。 .keys()
实际上仍然可以与 chromedriver
一起使用(仅发送文本,无链接),但它已被标记为弃用。有关详细信息,请参阅下面的列表。
依赖:
"selenium-standalone": "^5.11.2",
"wdio-selenium-standalone-service": "0.0.8",
"webdriverio": "4.8.0"
受影响的驱动程序版本:
ChromeDriver: 2.29-x64-chromedriver
GeckoDriver: 0.16.0-x64-geckodriverIEDriver:
3.4.0-x64-IEDriverServer
.keys()
命令有什么问题?
- 这是整个 Selenium 社区的一个已知问题,在驱动程序(
chromedriver
、geckodriver
等)实现 Webdriver 的新功能之前,不会在 WebdriverIO 中修复/解决用户输入的 W3C 标准,Actions API ; - 没有其他方法可以做到这一点(相信我,我试过了!),除非您实际上可以通过代码替换
CTRL + M
操作的功能; - 这是一个BUG为 GeckoDriver (Firefox) 记录此问题;
- 即使
.keys()
方法适用于您当前的版本,Christian-Bromann 确认它将在下一个版本中弃用(它也被标记为在/lib/protocol/keys.js
定义文件中弃用)。
注意:对于使用不同的 WDIO 命令有类似问题的人,弃用 .keys()
(WDIO)、.sendKeys()
(WebdriverJS) 也适用于其他损坏的 WebdriverIO 方法,如 .moveTo()
。了解更多信息 here .
关于javascript - 如何在 WebdriverIO 中点击 CTRL+M (Control + M),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43938015/