【问题标题】:Selenium::WebDriver::Error::JavascriptError: arguments[0] is undefinedSelenium::WebDriver::Error::JavascriptError: arguments[0] 未定义
【发布时间】:2015-01-26 21:58:09
【问题描述】:

在看到这是 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 的副本。

【问题讨论】:

    标签: firefox selenium rspec


    【解决方案1】:

    这是一个known issue,带有当前的 selenium 版本。

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

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

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

    然后运行bundle install

    【讨论】:

    • 完美!谢谢迈克!
    • 它不再在开发中,现在最新版本是2.45.0,只是bundle update selenium-webdriver
    【解决方案2】:

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

    我只是将 Firefox 完全从我的 mac 中卸载,然后将其拖入垃圾箱,然后重新安装了 Firefox 34 dmg。

    注意此外,如果您遇到此问题,当您下载 Firefox 34 时,您必须转到 Firefox >Preferences>Advanced,单击更新选项卡,然后选择“检查更新,但让我选择是否安装”或“从不检查for updates”以防止 Firefox 自动更新到 Firefox 35,从而在您下次再次运行 Selenium 测试套件时弄乱它们。

    【讨论】:

    • 虽然这是暂时解决此问题的修复程序,但并不总是可以降级 Firefox 版本。最新的 selenium-webdriver 开发版也将解决这个问题,允许您运行 Firefox 版本 35。gem 'selenium-webdriver', '2.45.0.dev3'
    猜你喜欢
    • 1970-01-01
    • 2015-03-13
    • 1970-01-01
    • 2014-07-24
    • 2017-06-15
    • 1970-01-01
    • 1970-01-01
    • 2012-05-25
    • 2019-03-31
    相关资源
    最近更新 更多