【问题标题】:Sending keyboard shortcuts to chrome with Selenium and Ruby使用 Selenium 和 Ruby 将键盘快捷键发送到 chrome
【发布时间】:2013-07-24 13:16:21
【问题描述】:

我正在尝试使用键盘快捷键在 Linux 上的 chrome 浏览器中启动开发工具。因为我使用的是 Ruby,它没有和弦方法,所以我尝试了以下方法:

driver.action.key_down(:shift)
             .key_down(:control)
             .send_keys("i")
             .key_up(:shift)
             .key_up(:control)
             .perform

上面的代码可以在 Firefox 中工作(如 Key press in (Ctrl+A) Selenium WebDriver 中所建议的那样),但在 chrome 中,它返回 nil 但没有结果。

有什么建议吗?

【问题讨论】:

  • 您能详细说明一下吗?你是怎么得到零的?您在哪里找到该输出?
  • 我尝试在命令行中以调试器模式传递此代码,以便我可以直接看到是否返回了任何被忽略的错误。看起来“nil”是操作构建器在没有错误时返回的内容。因此,当我尝试在 Firefox 上使用此代码并且成功时,返回 nil。当我尝试在 chrome 上使用此代码时,它没有成功,也返回了 nil。但是,当出现语法错误时(比如我尝试使用 key_down 方法传递“i”),命令提示符会显示错误。
  • 我可以看到.send_keys("i")。您没有通过key_down 传递i
  • Priti,我知道我没有使用 key_down 发送 i。我用它作为一个例子来说明如果你在语法上做错了,你会得到一个错误,如果语法正确,则返回 nil。
  • 谷歌浏览器 23.0.1271.95 ChromeDriver 21.0.1180.4

标签: ruby google-chrome selenium


【解决方案1】:

我在 Selenium 中使用过:

功能键 F12。

driver.FindElement(By.XPath("String")).SendKeys(Keys.F12);

【讨论】:

    【解决方案2】:

    我认为您只是使用了错误的组合键。据此:https://support.google.com/chrome/answer/171571?hl=en&ref_topic=25799,打开开发者工具的快捷方式是 Linux 和 Windows 上的 Ctrl-Shift-J 和 Mac 上的 Cmd-Opt-I。

    【讨论】:

    • 我确实尝试了 F12 和其他各种技术,但没有成功。 ://
    【解决方案3】:

    如果你想打开开发工具,你可以使用java的机器人类。

        try{
            Robot robot=new Robot();
            robot.keyPress(KeyEvent.VK_F12);
            robot.keyRelease(KeyEvent.VK_F12);  
        }
        catch(Exception ex){
            System.out.println(ex.getMessage());
        }
    

    【讨论】:

      猜你喜欢
      • 2018-10-25
      • 2012-07-16
      • 2019-02-11
      • 1970-01-01
      • 2017-05-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多