首页 > 解决方案 > 如何在 ruby​​ for chrome 浏览器中执行 ctrl+j。我正在使用 RubyMine 和 WatirWebdriver

问题描述

尝试下面的代码单击 ctrl+J 但不适用于 chrome 浏览器。@browser.driver.action.key_down(:control).send_keys("j").key_up(:control).perform 也试过@browser.driver.action.send_keys(:control,"J").perform

我在一篇博客中读到,上面的代码适用于 Firefox 浏览器,但不适用于 Chrome。

标签: ruby-on-railsrubywatirbrowser-automation

解决方案


首先,

你发送的方式control+j不对。发送的方式是,你必须在likecontrol+j里面给control+k[][:control,"j]

b.send_keys([:control,"j"])

第二关,

[:control,"j]由于以下问题,无法通过 chromedriver 发送

https://bugs.chromium.org/p/chromedriver/issues/detail?id=903

确切的答案在这里

This is a limitation in the way we simulate keyboard input in ChromeDriver. Keys get sent directly to the render process, bypassing the browser process. So any keyboard shortcut handlers in the browser process will not be invoked by sendKeys().

推荐阅读