为什么水豚在我指定 "chromedriver" 时寻找 "Mozilla geckodriver"?
Why is capybara looking for "Mozilla geckodriver" when I have specified "chromedriver"?
我有一个 Rspec 设置,其中包含水豚的规范支持文件,如下所示:
require 'capybara/rails'
require 'capybara/rspec'
require 'selenium-webdriver'
Capybara.configure do |config|
config.always_include_port = true
config.app_host = 'http://www.myteaspoon.pdev'
config.default_max_wait_time = 5
end
Capybara.register_driver(:chrome_headless) do |app|
options = Selenium::WebDriver::Chrome::Options.new(
args: %w[headless disable-gpu no-sandbox]
)
Capybara::Selenium::Driver.new(
app,
browser: :chrome,
options: options
)
end
Capybara.default_driver = :chrome_headless
RSpec.configure do |config|
config.infer_spec_type_from_file_location!
end
然而,当我尝试 运行 某些规格时,我收到以下错误:
Selenium::WebDriver::Error::WebDriverError: Unable to find Mozilla geckodriver. Please download the server from
https://github.com/mozilla/geckodriver/releases and place it somewhere on your PATH.
More info at https://developer.mozilla.org/en-US/docs/Mozilla/QA/Marionette/WebDriver.
from /Users/nk/.rvm/gems/ruby-2.5.3@au/gems/selenium-webdriver-3.142.3/lib/selenium/webdriver/common/service.rb:136:in `binary_path'
可能出了什么问题,我该如何调试?
我安装了 chromedriver 使用:brew cask install chromedriver
它似乎在路径中:
$ chromedriver -v
ChromeDriver 76.0.3809.126 (d80a294506b4c9d18015e755cee48f953ddc3f2f-refs/branch-heads/3809@{#1024})
当您需要 capybara/rspec 时,将安装一个挂钩,将当前驱动程序设置为 Capybara.javascript_driver 的值,以用于任何带有 :js 元数据的测试 - https://github.com/teamcapybara/capybara/blob/master/lib/capybara/rspec.rb#L23 -。如果您希望所有测试(有和没有 :js 元数据)都使用相同的驱动程序,那么您需要设置 Capybara.default_driver = Capybara.javascript_driver = :chrome_headless
我有一个 Rspec 设置,其中包含水豚的规范支持文件,如下所示:
require 'capybara/rails'
require 'capybara/rspec'
require 'selenium-webdriver'
Capybara.configure do |config|
config.always_include_port = true
config.app_host = 'http://www.myteaspoon.pdev'
config.default_max_wait_time = 5
end
Capybara.register_driver(:chrome_headless) do |app|
options = Selenium::WebDriver::Chrome::Options.new(
args: %w[headless disable-gpu no-sandbox]
)
Capybara::Selenium::Driver.new(
app,
browser: :chrome,
options: options
)
end
Capybara.default_driver = :chrome_headless
RSpec.configure do |config|
config.infer_spec_type_from_file_location!
end
然而,当我尝试 运行 某些规格时,我收到以下错误:
Selenium::WebDriver::Error::WebDriverError: Unable to find Mozilla geckodriver. Please download the server from
https://github.com/mozilla/geckodriver/releases and place it somewhere on your PATH.
More info at https://developer.mozilla.org/en-US/docs/Mozilla/QA/Marionette/WebDriver.
from /Users/nk/.rvm/gems/ruby-2.5.3@au/gems/selenium-webdriver-3.142.3/lib/selenium/webdriver/common/service.rb:136:in `binary_path'
可能出了什么问题,我该如何调试?
我安装了 chromedriver 使用:brew cask install chromedriver
它似乎在路径中:
$ chromedriver -v
ChromeDriver 76.0.3809.126 (d80a294506b4c9d18015e755cee48f953ddc3f2f-refs/branch-heads/3809@{#1024})
当您需要 capybara/rspec 时,将安装一个挂钩,将当前驱动程序设置为 Capybara.javascript_driver 的值,以用于任何带有 :js 元数据的测试 - https://github.com/teamcapybara/capybara/blob/master/lib/capybara/rspec.rb#L23 -。如果您希望所有测试(有和没有 :js 元数据)都使用相同的驱动程序,那么您需要设置 Capybara.default_driver = Capybara.javascript_driver = :chrome_headless