我是第一次设置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的行?
答案 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中所述,您可以通过指定
driven_by :selenium, using: :firefox
此外,水豚2.18在这一点上已经过时了。如果计划使用Firefox / Chrome的最新版本,则可能需要更新到最新版本(截至目前为3.6)。