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...
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
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
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)
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
essayez de changer le paramètre "*chrome" en "*googlechrome" dans la fonction de configuration de la classe.
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