Подтвердить что ты не робот

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

Для сценария 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 (который я еще не установил). Это возможно? Что можно сделать?

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

==== ==== EDIT

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

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

... к функциям /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)

Помогите оценить! Подходите ближе...

4b9b3361

Ответ 1

Для capybara добавьте это в 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

Ответ 2

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

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

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

Ответ 3

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

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

Подробнее см. capybara docs (особенно посмотрите раздел "Настройка и добавление драйверов" )

Ответ 4

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

Ответ 5

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

Ответ 6

попробуйте поместить путь хром-драйверов в вашу переменную PATH, если вы находитесь в дистрибутиве linux с bash.

Capybara.register_driver: selenium do | приложение | Capybara:: Selenium:: Driver.new(приложение,: browser = > : chrome) конец

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

$sudo chmod + x/usr/bin/chromedriver

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