Firefox是默认设置,但仍会出现WebDriverError:无法连接到chromedriver 127.0.0.1:9515

时间:2018-08-26 16:24:59

标签: ruby-on-rails ruby selenium testing capybara

我是第一次设置Capybara,默认情况下,它似乎是在调用Chrome而不是Firefox。

起初,我遇到了webdriver错误:

  

Selenium :: WebDriver :: Error :: WebDriverError:               无法连接到chromedriver 127.0.0.1:9515*   与相关的stacktrace
  https://pastebin.com/TW5NWJgu

我能够通过添加gem 'chromedriver-helper'来清除此问题,现在测试开始使用铬。

我还尝试将其添加到spec_helper和rails_helper:

Capybara.register_driver :selenium do |app|
  Capybara::Selenium::Driver.new(app, browser: :firefox)
end

我能够确认Rails能够成功调用firefox,因为在开始测试时,rails_helper中的以下命令确实成功启动了Firefox(但未采取任何其他措施)(根据评论,我后来删除了此命令) )。

RSpec.configure do |config|
    driver = Selenium::WebDriver.for :firefox
end

我在单独的机器和不同的Rails应用程序上遇到了相同的错误(在Capybara的第一遍中也没有设置geckodriver)

我的理解是,默认情况下,Capybara应该调用Firefox。我似乎找不到第二个配置。有谁知道在哪里可以找到叫chrome的行?

1 个答案:

答案 0 :(得分:1)

从您提供的日志文件中,我们可以看到您正在使用Rails 5.1,RSpec 3.8和Capybara 2.18。由于该日志还包含“ actionpack-5.1.6 / lib / action_dispatch / system_testing / driver.rb”,因此我们可以知道您正在编写系统测试/规范(通过rspec-rails)。系统测试使用的驱动程序由RSpec system spec docs中所述的driven_by方法控制,默认情况下使用已配置为使用Chrome的Rails注册的:selenium驱动程序。如Rails System Test docs中所述,您可以通过指定

切换到Firefox
driven_by :selenium, using: :firefox

此外,水豚2.18在这一点上已经过时了。如果计划使用Firefox / Chrome的最新版本,则可能需要更新到最新版本(截至目前为3.6)。