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

时间:2013-08-07 22:00:09

标签: rspec selenium-webdriver

今天运行我的rspec测试,每当测试中的某个地方出现“page.execute_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'

上面路径的/ resources目录(而不是组件)中有一个文件evaluate.js,就像在其他机器上一样。

这是在从22更新到Firefox 23之后发生的。我还没有能够回滚确认返回22确实解决了问题,但是我相信这就改变了。

还有其他人看过这个问题吗?

运行Kubuntu 12.04,Capybara 1.1.4,selenium-webdriver gem 2.33.0

我尝试将Capybara更新为2.whatever和selenium-webdriver更新为2.34.0,没有变化。

4 个答案:

答案 0 :(得分:85)

我在使用FF 23的Mac OS X Lion上遇到了同样的问题。

但是当我将selenium-webdriver更新为2.34.0

时,问题就消失了

我在我的Gemfile中添加了gem "selenium-webdriver", "~> 2.34.0"

bundle update selenium-webdriver

bundle install

现在,黄瓜与硒一起工作正常。

答案 1 :(得分:4)

我已将我的宝石更新为:

gem 'capybara',             '~> 2.1.0'
gem 'selenium-webdriver',   '~> 2.35.1'

这对我有用。

<强>更新

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

答案 2 :(得分:1)

我跑了下面,它运作了:

 gem install selenium-webdriver -v "2.35.0"

答案 3 :(得分:0)

我最近安装了Selenium Webdriver,并且在我的一些Python测试脚本中看到了同样的问题。在进行了一些挖掘后,我能够确定execute_script在尝试将JS返回值转换为可以进行本机评估的对象(在我的方案中使用Python)时挂起。

会挂起:

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

不会挂起:

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

你仍然可以返回更复杂的对象,我只是小心地总是明确地让JS return得到我想要的值,或者true如果我只需要执行脚本。

希望这有帮助。

我做了一些阅读,以解决这个问题: