2 votes

Pourquoi capybara cherche-t-il "Mozilla geckodriver" alors que j'ai spécifié "chromedriver" ?

J'ai une configuration Rspec avec un fichier de support de spec pour Capybara qui ressemble à ceci :

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

Cependant, lorsque j'essaie d'exécuter certaines spécifications, j'obtiens l'erreur suivante :

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'

Qu'est-ce qui ne va pas et comment puis-je le déboguer ?

J'ai installé chromedriver en utilisant : brew cask install chromedriver

Et il semble qu'il soit en voie de réalisation :

$ chromedriver -v
ChromeDriver 76.0.3809.126 (d80a294506b4c9d18015e755cee48f953ddc3f2f-refs/branch-heads/3809@{#1024})

0voto

Thomas Walpole Points 27922

Lorsque vous avez besoin de capybara/rspec, un hook est installé qui définit le pilote actuel à la valeur de Capybara.javascript_driver pour tous les tests avec des métadonnées :js - https://github.com/teamcapybara/capybara/blob/master/lib/capybara/rspec.rb#L23 -. Si vous voulez que tous les tests (avec et sans métadonnées :js) utilisent le même pilote, vous devez définir le paramètre Capybara.default_driver = Capybara.javascript_driver = :chrome_headless

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X