2013-07-24 52 views
9

我试图通过使用键盘快捷键在Linux上的chrome浏览器中启动devtools。由于我使用Ruby和它没有一个和弦的方法,我已经试过如下:使用Selenium和Ruby发送键盘快捷键到chrome

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建议)工作,但在铬,则返回nil但没有结果发生。

有什么建议吗?

+0

请问您能详细说明一下吗?你如何得到零?你在哪里找到那个输出? –

+0

我试图在命令行中以调试器模式传递此代码,以便我可以第一手看到是否有任何被忽略的错误返回。 看起来'nil'是动作构建器在没有错误时返回的内容。所以,当我试图在Firefox上使用此代码,并且它成功时,返回了零。当我试图在chrome上使用这段代码时,它并没有成功,所以nil也被返回。但是,当某些语法错误(例如,我尝试使用key_down方法传递“i”)时,命令提示符显示错误。 –

+0

我可以看到'.send_keys(“我”)'。你没有通过'key_down'传递* i *。 –

回答

0

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

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

硒我已经使用:

功能键F12。

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