Selenium продолжает пытаться найти geckodriver, даже когда я думаю, что настроил его с Chromedriver при использовании Ruby 2.3.3 - PullRequest
0 голосов
/ 14 февраля 2019

Я пытаюсь заставить Selenium использовать Chrome (через гем 'chromedriver-helper'), чтобы я мог использовать капибару.

Однако, я продолжаю сталкиваться с этой ошибкой в ​​irb - Selenium :: WebDriver:: Ошибка :: WebDriverError: Невозможно найти Gekodriver Mozilla.Пожалуйста, скачайте сервер с https://github.com/mozilla/geckodriver/releases и разместите его где-нибудь в вашем PATH.Больше информации на https://developer.mozilla.org/en-US/docs/Mozilla/QA/Marionette/WebDriver.

Я знаю, что Selenium по умолчанию использует Firefox и geckodriver, однако мой iMac больше не получает обновления MacOS, поэтому brew не загружает geckodriver.Итак, я использую chromedriver.

Ниже приведено то, что я набрал в irb.

2.3.3 :001 > require 'capybara/dsl'
 => true
2.3.3 :002 > require 'selenium-webdriver'
 => true
2.3.3 :003 > include Capybara::DSL
including Capybara::DSL in the global scope is not recommended!
 => Object
2.3.3 :004 > Capybara.default_driver = :selenium
 => :selenium
2.3.3 :005 > driver = Selenium::WebDriver.for:chrome
 => #<Selenium::WebDriver::Chrome::Driver:0x3f7ff1cdc18a3184 browser=:chrome>
2.3.3 :006 > visit 'http://capybaraworkout.herokuapp.com'
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.

Я подумал, что приведенный ниже фрагмент сказал Selenium использовать Chrome вместо Firefox !!

driver = Selenium::WebDriver.for:chrome

Я ожидаю - посетите 'http://capybaraworkout.herokuapp.com', чтобы перейти к URL-адресу в chrome (так как' visit '- это метод капибары), я знаю - driver.get' http://capybaraworkout.herokuapp.com'will Возьмите меня на URL, но потом, когда я использую другой метод капибары, такой как - click_link 'Start Workout!'Я получаю ту же ошибку (Selenium :: WebDriver :: Error :: WebDriverError: Невозможно найти Gezodriver Mozilla. Пожалуйста, загрузите сервер с https://github.com/mozilla/geckodriver/releases и поместите его где-нибудь в своем PATH. Подробнее на https://developer.mozilla.org/en-US/docs/Mozilla/QA/Marionette/WebDriver.)

Что мне нужно сделать, чтобы заставить Капибару использовать Chrome через Selenium?

1 Ответ

0 голосов
/ 14 февраля 2019

Вам необходимо зарегистрировать драйвер с определенной конфигурацией, чтобы Capybara могла использовать другой браузер - https://github.com/teamcapybara/capybara#configuring-and-adding-drivers. Однако, если все, что вам нужно - это Selenium, использующий Chrome с настройкой по умолчанию, то Capybara уже зарегистрировал драйвер дляyou - https://github.com/teamcapybara/capybara#selenium

Capybara.default_driver = :selenium_chrome

Это потребует, чтобы у вас был установлен chromedriver (что будет делать гем chromedriver-helper, хотя я бы порекомендовал использовать гем webdrivers).Если вы не хотите использовать селен / хромедривер, тогда есть пара новых опций, напрямую связанных с Chrome, одним из которых является драйвер appartion - https://github.com/twalpole/apparition

...