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
。
希望这可以帮助。
我做了一些解读:
- https://code.google.com/p/selenium/issues/detail?id=5979
- 使用Selenium WebDriver读取JavaScriptvariables