【问题标题】:Rails app: @javascript Selenium Cucumber/Capybara tests fail with object UndefinedRails 应用程序:@javascript Selenium Cucumber/Capybara 测试失败,对象未定义
【发布时间】:2017-12-18 23:32:27
【问题描述】:

我最近将我的 Mac 从 Sierra 升级到了 High Sierra。我正在使用的具有 Cucumber 测试的 Rails 应用程序现在失败并出现一个奇怪的错误:

预期 [object Undefined] undefined 为字符串 (Selenium::WebDriver::Error::InvalidArgumentError)

我已经尝试在 Firefox 56.0.2(升级前运行了几周)和现在的 57.0.1 上运行这些测试。

我在网络上的许多地方都看到过这个错误,但显然只针对旧版本的 geckodriver。我正在运行版本 0.19.1。我已尽我所能确认没有旧的 geckodriver 版本存在。

尝试运行水豚的“fill_in”命令时出现错误。我最初运行的是 selenium_webdriver 3.4.4,但也尝试过 3.6.0 和 3.8.0(最新版本)。

令人困惑的是,我的同事也升级到 High Sierra,运行我测试过的相同 Firefox 版本,使用 selenium 3.4.4,和我相同的 geckodriver 版本。他们的测试通过了。所以我想知道是否有人知道我的机器和我的同事之间可能会在此过程中涉及的其他设置/应用程序。感谢您的任何意见。

【问题讨论】:

  • 我在项目中测试了 capybara gem 的更新,但行为没有改变。我已经为 rvm 卸载并重新安装了 ruby​​ 版本(2.1.10)。我已经为所有项目重建了所有链接到 2.1.10 安装的 gemset。最后,我在所有使用不同版本水豚的 Web 应用程序上运行了测试。所有应用程序都以相同的方式失败并显示上述错误消息。

标签: ruby-on-rails selenium-webdriver cucumber capybara


【解决方案1】:

问题已找到。我在 /usr/local/bin 中有一个名为 geckodriver.sav 的可执行文件。它是 geckodriver 的旧版本。在 /usr/local/bin 中有一个指向我自制地窖中最新的 geckodriver 的链接。如果您查看 selenium 源代码,它会选择“geckodriver*”作为要启动的文件。显然,这个 .sav 文件比链接更受欢迎(可能是任意基于发现的订单文件)。将 .sav 文件移出 /usr/local/bin 并且我的测试现在都通过了。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-06
  • 2014-03-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多