Cucumber; Selenium WebDriver - comment utiliser Google Chrome comme navigateur de test à la place de Firefox

pour un scénario de concombre sur mon application Rails 3.1, j'ai utilisé la balise @javascript, donc le sélénium est activé. Je reçois l'erreur suivante:

Could not find Firefox binary (os=macosx). Make sure Firefox is installed or set the path manually with Selenium::WebDriver::Firefox::Binary.path= (Selenium::WebDriver::Error::WebDriverError)

si possible, J'aimerais utiliser Google Chrome comme navigateur - Pas Firefox (que je n'ai pas installé). Est-ce possible? Ce qui pourrait être fait?

en fait, le concombre/sélénium ne devrait-il pas détecter un navigateur et l'utiliser?

= = = = EDIT = = = =

après addition

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

... à features/support/env.RB, J'ai maintenant cette erreur:

Unable to find the chromedriver executable. Please download the server from http://code.google.com/p/chromium/downloads/list and place it somewhere on your PATH. More info at http://code.google.com/p/selenium/wiki/ChromeDriver. (Selenium::WebDriver::Error::WebDriverError)
  ./features/step_definitions/web_steps.rb:45:in `/^(?:|I )am on (.+)$/'
  features/update_memories.feature:11:in `Given I am on the home page'

j'ai téléchargé à partir de ici , et j'ai essayé de mettre l'exécutable chromedriver dans /usr/bin, mais j'obtiens toujours l'erreur ci-dessus.

= = = = EDIT 2= = = = =

après avoir fait un pas de plus et avoir lancé "sudo chmod +x / usr / bin / chromedriver" comme suggéré ci-dessous, j'obtiens maintenant une nouvelle erreur après avoir lancé le concombre:

@javascript
  Scenario: navigate to memory update page from home page              # features/update_memories.feature:11
    Given I am on the home page                                        # features/step_definitions/web_steps.rb:44
      unable to connect to chromedriver http://127.0.0.1:57870 (Selenium::WebDriver::Error::WebDriverError)
      ./features/step_definitions/web_steps.rb:45:in `/^(?:|I )am on (.+)$/'
      features/update_memories.feature:12:in `Given I am on the home page'
    When I activate the edit memory switch for the memory "I played"   # features/step_definitions/memories/memory_steps.rb:5
    Then I should be on the edit memory page for the memory "I played" # features/step_definitions/web_steps.rb:187
      PGError: server closed the connection unexpectedly
        This probably means the server terminated abnormally
        before or while processing the request.
      : ROLLBACK (ActiveRecord::StatementInvalid)

Aide appréciée! Se rapprocher...

20
demandé sur dmonopoly 2011-07-26 00:04:23

6 réponses

pour capybara, ajouter à env.rb

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

téléchargez l'exécutable du pilote Chrome et copiez - le dans votre chemin, par exemple / usr / bin/ et faites-le exécutable

$ sudo chmod +x /usr/bin/chromedriver
32
répondu Joel Cogen 2013-03-28 19:46:48

Aujourd'hui, la façon la plus facile d'obtenir l'exécutable chromedriver semble être d'installer le chromedriver-helper gem. S'il vous plaît voir https://github.com/flavorjones/chromedriver-helper pour plus de détails.

en plus d'installer le gem, vous devrez configurer votre environnement de la même manière que déjà mentionné dans plusieurs autres réponses:

Capybara.register_driver :selenium do |app|
  Capybara::Selenium::Driver.new(app, :browser => :chrome)
end
3
répondu DonSteep 2013-04-24 21:57:38

si vous utilisez capybara essayez ceci

Capybara.register_driver :selenium do |app|

   Capybara::Selenium::Driver.new(app, :browser => :chrome)

end

Voir capybara docs pour plus de détails (en particulier jeter un oeil sur la Configuration et l'ajout de la section pilotes)

1
répondu iafonov 2011-07-26 16:03:44
Capybara.default_driver = :chrome
Selenium::WebDriver::Chrome::Service.executable_path = '/usr/local/bin/chromedriver' # specify the path of chromedriver
Capybara.register_driver :chrome do |app|
  Capybara::Selenium::Driver.new(app, :browser => :chrome)
end
1
répondu user3572816 2018-08-03 11:53:52

essayez de changer le paramètre "*chrome" en "*googlechrome" dans la fonction de configuration de la classe.

0
répondu Nathan Katz 2011-07-26 08:26:38

essayez de mettre le chemin des pilotes chrome dans votre variable PATH si vous êtes sur une distribution linux avec bash.

Capybara.registrer_driver: selenium do / app| Capybara:: Sélénium:: Driver.nouveau(app, navigateur => :chrome) la fin de

téléchargez L'exécutable du pilote Chrome et copiez-le dans votre chemin, par exemple /usr / bin / et faites-le exécutable

$ sudo chmod +x / usr / bin /chromedriver

ça a marché pour moi

0
répondu Gaurav Saini 2011-11-09 07:56:48