javascript - 如何在 WebdriverIO 中点击 CTRL+M (Control + M)

标签 javascript mocha.js 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);浏览器.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 社区的一个已知问题,在驱动程序(chromedrivergeckodriver 等)实现 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/

相关文章:

javascript旋转翻译函数

mocha.js - 描述中不存在属性 'only'

node.js - 如何使用 sinon stub 异步数据库调用

java - 如果 IOS 按钮出现在屏幕上,如何使用 if/else 来单击它

javascript - 单击时的子菜单必须保持打开状态

javascript - 使用 Animsition 和 Infinite Scroll js

node.js - TypeError : expect. createSpy 不是函数

java - 无法在 webview 中使用 appium android 找到混合应用程序的 webelement

Appium : Clear a field

javascript - 将 typescript 路径别名编译为 NPM 发布的相对路径?