我必须发出一个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(使用前将#替换为@)