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

时间:2015-01-26 21:58:09

标签: firefox selenium rspec

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

 Selenium::WebDriver::Error::JavascriptError: arguments[0] is undefined

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

2 个答案:

答案 0 :(得分:15)

这是known issue当前释放的硒。

正如@ janders223在对another question的评论中所指出的,Ruby项目的临时解决方法是使用selenium-webdriver gem的开发版本。

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

gem 'selenium-webdriver', '>=2.45.0.dev3'

然后运行bundle install

答案 1 :(得分:7)

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

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

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