Rspec Selenium::WebDriver::Error::JavascriptError:等待evaluate.js加载失败Firefox 23

Rspec Selenium::WebDriver::Error::JavascriptError:等待evaluate.js加载失败Firefox 23,rspec,selenium-webdriver,Rspec,Selenium Webdriver,今天运行我的rspec测试时,每当测试中有“page.execute\u script”调用时,我就会出现以下错误 Selenium::WebDriver::Error::JavascriptError: waiting for evaluate.js load failed # [remote server] file:///tmp/webdriver-profile20130807-3105-fpynb7/extensions/fxdriver@googlecode.com/com

今天运行我的rspec测试时,每当测试中有“page.execute\u script”调用时,我就会出现以下错误

 Selenium::WebDriver::Error::JavascriptError:
   waiting for evaluate.js load failed
 # [remote server] file:///tmp/webdriver-profile20130807-3105-fpynb7/extensions/fxdriver@googlecode.com/components/driver_component.js:8360:in `r'
 # [remote server] file:///tmp/webdriver-profile20130807-3105-fpynb7/extensions/fxdriver@googlecode.com/components/driver_component.js:392:in `fxdriver.Timer.prototype.runWhenTrue/g'
 # [remote server] file:///tmp/webdriver-profile20130807-3105-fpynb7/extensions/fxdriver@googlecode.com/components/driver_component.js:386:in `fxdriver.Timer.prototype.setTimeout/<.notify'
Selenium::WebDriver::Error::JavascriptError:
等待evaluate.js加载失败
#[远程服务器]file:///tmp/webdriver-profile20130807-3105-fpynb7/extensions/fxdriver@googlecode.com/components/driver_component.js:8360:in'r'
#[远程服务器]file:///tmp/webdriver-profile20130807-3105-fpynb7/extensions/fxdriver@googlecode.com/components/driver\u component.js:392:in`fxdriver.Timer.prototype.runWhenTrue/g'

#[远程服务器]file:///tmp/webdriver-profile20130807-3105-fpynb7/extensions/fxdriver@googlecode.com/components/driver_component.js:386:in`fxdriver.Timer.prototype.setTimeout/我在Mac OS X Lion和FF 23上遇到了同样的问题

但当我将SeleniumWebDriver更新到2.34.0时,问题就消失了

我将
gem“selenium webdriver”、“~>2.34.0”
添加到我的gem文件中

捆绑更新selenium webdriver

bundle安装


Cucumber现在可以很好地与selenium配合使用。

我最近安装了selenium Webdriver,并在我的一些Python测试脚本中看到了同样的问题。经过一番挖掘,当它试图将JS返回值转换为一个可以进行本机计算的对象时(在我的场景中是Python),我能够确定
execute\u script
挂起了

将挂起:

self.driver.execute_script('document.body.innerHTML="<form></form>";')
self.driver.execute_script('document.body.innerHTML="<form></form>"; return true;')
self.driver.execute_脚本('document.body.innerHTML=“”;)
不会挂起:

self.driver.execute_script('document.body.innerHTML="<form></form>";')
self.driver.execute_script('document.body.innerHTML="<form></form>"; return true;')
self.driver.execute_脚本('document.body.innerHTML=“;return true;”)
您仍然可以返回更复杂的对象,我只是小心地始终显式地让JS
返回我想要的值,或者如果我只需要执行脚本,则返回
true

希望这有帮助

我读了一些书来了解这一点:


我已将我的gems更新为:

gem 'capybara',             '~> 2.1.0'
gem 'selenium-webdriver',   '~> 2.35.1'
这对我有用

更新:

self.driver.execute_script('document.body.innerHTML="<form></form>";')
self.driver.execute_script('document.body.innerHTML="<form></form>"; return true;')

Capybara 2.1.0在Phantomjs方面给了我一个问题,最后我使用了2.0.3版本。

我运行了下面的程序,它成功了:

 gem install selenium-webdriver -v "2.35.0"

好吧,我发誓我以前做过,但现在它起作用了。也许我忘了安装
,谁知道呢。不管怎样,解决了我的问题,请接受,谢谢!在TestNG测试中也看到了同样的情况。只需删除selenium-java-2.33.0.jar,并将其替换为selenium-java-2.34.0.jar即可。谢谢。在使用Spork时,别忘了停止并重新启动服务器,这样它就会发生变化。你可以用这个来修复rubyzip问题:这一个在Ubuntu 12.04LTS上对我有效,当使用Spork时,别忘了停止并重新启动服务器,这样它就会发生变化。