Rails app:@javascript Selenium Cucumber / Capybara测试失败,对象未定义

时间:2017-12-18 23:32:28

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

我最近将我的Mac从Sierra升级为High Sierra。我工作的rails应用程序有Cucumber测试现在失败,出现了一个奇怪的错误:

预期[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版本。他们的测试通过。所以我想知道是否有人知道在我的机器和我的同事之间可能会有所不同的其他设置/应用程序。感谢您的任何意见。

1 个答案:

答案 0 :(得分:0)

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