Ruby on rails 轨道&x2B;水豚:单击带有evaluate_脚本的链接将冻结webdriver

Ruby on rails 轨道&x2B;水豚:单击带有evaluate_脚本的链接将冻结webdriver,ruby-on-rails,capybara,Ruby On Rails,Capybara,我在我的js:true请求规范中运行以下命令: page.evaluate_script("$('#sign-up').click();") 这将成功打开模式。但是,无论规范中接下来会出现什么,webdriver都会在这一点上冻结。在长时间暂停后,我得到: Failure/Error: Timeout::Error: Timeout::Error # ./spec/requests/my_spec.rb:14:in `block (3 levels) in <top (re

我在我的
js:true
请求规范中运行以下命令:

page.evaluate_script("$('#sign-up').click();")
这将成功打开模式。但是,无论规范中接下来会出现什么,webdriver都会在这一点上冻结。在长时间暂停后,我得到:

 Failure/Error: 
 Timeout::Error:
   Timeout::Error
 # ./spec/requests/my_spec.rb:14:in `block (3 levels) in <top (required)>'
故障/错误:
超时::错误:
超时::错误
#./spec/requests/my_spec.rb:14:in'block(3层)in'

在这种情况下,我想使用
evaluate_script
而不是“click_on”,因为该特定链接上没有
href
属性(click_on不起作用)。如何让它在不超时的情况下工作?

这是由于Selenium中的一个bug造成的。在这里找到了答案:

替换
页面时,它不会挂起。请使用以下内容评估脚本:

page.driver.browser.execute_script

谢谢这为我解决了水豚(1.1.2)和SeleniumWebDriver(2.25.0)的问题。我实际上触发了鼠标悬停,但有相同的超时问题。你可以使用
页面。执行脚本
。无需转到
page.driver.browser