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

今天运行我的rspectesting,我得到了下面的错误,无论何时在testingtheres一个`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' 

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

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

有没有其他人看到这个问题?

运行Kubuntu 12.04,水豚1.1.4,selenium-webdrivergem2.33.0

我试着更新水豚2.什么和selenium-webdriver 2.34.0,没有变化。

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

但是当我把selenium-webdriver更新到2.34.0时,问题就解决了

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

bundle update selenium-webdriver

bundle install

现在黄瓜和selenium一起工作得很好。

我更新了我的gem:

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

这对我有效。

更新:

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

我跑下面,它的工作:

  gem install selenium-webdriver -v "2.35.0" 

我最近安装了Selenium Webdriver,并且看到了一些与我的Pythontesting脚本相同的问题。 经过一番挖掘,我能够确定execute_script在试图将JS返回值转换为可以本机评估的对象(在我的scheme中是Python)时挂起。

会挂起:

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

不会挂起:

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

你仍然可以返回更复杂的对象,我只是要小心,总是显式地让JS return我想要的值,如果我只是需要执行脚本,则return true

希望这可以帮助。

我做了一些解读: