Selenium :: WebDriver :: Error :: JavascriptError:arguments [0]未定义

Tha*_*tta 18 firefox selenium rspec

看到这是Firefox 35的一个问题后,我安装了34并运行bundle exec rspec,我的测试运行完美.但是当我再次尝试运行它时,它以某种方式打开了较新版本的Firefox,因为当我运行我的测试套件时再次出现以下错误:

 Selenium::WebDriver::Error::JavascriptError: arguments[0] is undefined
Run Code Online (Sandbox Code Playgroud)

有没有办法保证我没有安装Firefox 35,Selenium会以某种方式找到并打开?我知道Firefox 34是我Applications目录中Firefox的版本,但我不确定是否有新的firefox的副本副本,Selenium在launchy使用时会抓取它.

Mik*_*zur 15

这是当前释放的硒的已知问题.

正如@ janders223在另一个问题的评论中指出的那样,Ruby项目的临时解决方法是使用selenium-webdrivergem 的开发版本.

修改您的Gemfile以指定最新的开发版本(截至撰写本文时):

gem 'selenium-webdriver', '>=2.45.0.dev3'
Run Code Online (Sandbox Code Playgroud)

然后跑bundle install.


Tha*_*tta 7

所以,这是非常基本的,但我发现当我通过此处列出dmg安装Firefox 34时,因为我只是将Firefox图标拖放到Applications文件夹中,单击"是,我想覆盖现有的应用程序" "我没有确保Firefox 35的所有新文件都不能供Selenium使用,Selenium在没有我知道它选择哪个版本的情况下利用了它.

我只是通过将其拖入垃圾箱而完全从我的Mac中卸载Firefox,然后重新安装Firefox 34 dmg.

NB此外,如果您遇到此问题,当您下载Firefox 34时,您必须转到Firefox>首选项>高级,单击更新选项卡,然后选择"检查更新,但让我选择是否安装它们"或"从不"检查更新"以防止Firefox自动更新到Firefox 35,因此下次再次运行时会弄乱您的Selenium测试套件.

  • 虽然这是一个可以暂时解决此问题的修复程序,但并不总是可以降级Firefox版本.selenium-webdriver的最新开发版本也将解决此问题,允许您运行Firefox版本35.`gem'sselenium-webdriver','2.45.0.dev3'` (3认同)