Огурец; Selenium WebDriver - как использовать Google Chrome в качестве браузера для тестирования вместо Firefox - PullRequest
20 голосов
/ 26 июля 2011

Для сценария Cucumber в моем приложении Rails 3.1 я использовал тег @javascript, поэтому Selenium активирован.Я получаю следующую ошибку:

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)

Если возможно, я бы хотел использовать Google Chrome в качестве браузера, а не Firefox (который я не установил).Это возможно?Что можно сделать?

На самом деле, не должен ли Cucumber / Selenium обнаруживать браузер и использовать его?

==== РЕДАКТИРОВАТЬ ====

После добавления

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

... to features / support / env.rb, теперь я получаю эту ошибку:

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'

Я скачал с здесь , иЯ попытался поместить исполняемый файл chromedriver в / usr / bin, но все равно получаю вышеуказанную ошибку.

==== РЕДАКТИРОВАТЬ 2 ====

Пройдя еще один шаг изапустив "sudo chmod + x / usr / bin / chromedriver", как предложено ниже, теперь я получаю новую ошибку после запуска огурца:

@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)

Помощь приветствуется!Все ближе ...

Ответы [ 6 ]

32 голосов
/ 22 сентября 2011

Для капибары добавьте это в env.rb

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

Загрузите исполняемый файл Chrome и скопируйте его по своему пути, например /usr / bin / и сделать его исполняемым

$ sudo chmod +x /usr/bin/chromedriver
3 голосов
/ 25 апреля 2013

На сегодняшний день самый простой способ получить исполняемый файл chromedriver - установить гем chromedriver-helper.Подробности см. https://github.com/flavorjones/chromedriver-helper.

Помимо установки гема, вам придется настроить свою среду так же, как уже упоминалось в нескольких других ответах:

Capybara.register_driver :selenium do |app|
  Capybara::Selenium::Driver.new(app, :browser => :chrome)
end
1 голос
/ 04 февраля 2015
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 голос
/ 26 июля 2011

Если вы используете капибару, попробуйте это

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

См. документы на капибару для получения дополнительной информации (особенно загляните в раздел Настройка и добавление драйверов)

0 голосов
/ 09 ноября 2011

попробуйте указать путь к драйверам Chrome в переменной PATH, если вы используете дистрибутив Linux с bash.

Capybara.register_driver: селен до | приложение | Capybara :: Selenium :: Driver.new (приложение,: браузер =>: хром) конец

Загрузите исполняемый файл драйвера Chrome и скопируйте его по своему пути, например, / usr / bin / и сделать его исполняемым

$ sudo chmod + x / usr / bin / chromedriver

это сработало для меня

0 голосов
/ 26 июля 2011

Попробуйте изменить настройку "* chrome" на "* googlechrome" в функции настройки класса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...