Большинство базовых c Selenium webdriver "Hello World" терпит неудачу с треском - PullRequest
0 голосов
/ 30 января 2020

В программе «Привет, мир» моего селенового веб-драйвера произошла ошибка. Извиняюсь, что я очень новичок в этом.

Я развернул новый образ Ubuntu и вот мои настройки:

  • Ubuntu 18.04 с Google Chrome установлен
  • Ruby на Rails
  • установлен драгоценный камень selenium-webdriver
  • VN C установлен

Моя программа "Hello World":

        require "selenium-webdriver"
        **driver = Selenium::WebDriver.for :chrome**
        driver.navigate.to "http://www.google.com"
        element = driver.find_element(:name, 'q')
        element.send_keys "Hello Selenium WebDriver!"
        element.submit
        puts driver.title

Это выдает ошибку:

/ home / user / .rvm / gems / ruby -2.6.3 / gems / selenium-webdriver-3.142.7 / lib / selenium / webdriver / remote / response.rb: 72: в `assert_ok ': неизвестная ошибка: Chrome не удалось запустить: аварийный выход (Selenium :: WebDriver :: Error :: UnknownError) (неизвестная ошибка: файл DevToolsActivePort не существует) (The процесс запущен из chrome location / usr / bin / google-chrome больше не выполняется, поэтому ChromeDriver предполагает, что Chrome произошел сбой.) (Информация о драйвере: chromedriver = 2.41.578700 (2f1ed5f9343c13f73144538f15c00b370eda6706), платформа = Linux 5.0.0-1028-gcp x86_64)

(эта ошибка происходит в жирной строке кода)

Я проверил с команда whereis для google-chrome и google-chrome -stable. Они оба находятся в / usr / bin /

У меня также установлен VN C, и я смотрю на операционную систему. Когда я запускаю эту программу, я надеюсь, что Chrome выскочит, но ничего не происходит.

Должен ли Selenium запускаться chrome (виден мне в VN C)? В любом случае, что я делаю не так?

1 Ответ

0 голосов
/ 11 февраля 2020

Несколько вещей могут пойти не так, как надо.

Прежде всего, убедитесь, что на машине установлена ​​последняя версия chromedriver . Вы можете извлечь и разместить исполняемый файл в любом месте, которое включено в $ PATH (echo $PATH, чтобы увидеть, где находятся эти каталоги).

Если у вас все еще есть проблемы, стоит попробовать добавить следующие параметры для инициализации драйвера, например:

options = Selenium::WebDriver::Chrome::Options.new
options.headless!
options.add_argument('--no-sandbox')
options.add_argument('--disable-dev-shm-usage')
driver = Selenium::WebDriver.for :chrome, options: options

Если это работает для вас, это может быть проблемой, связанной с менеджером окон x, который установлен (или не установлен). В качестве альтернативы тому, чтобы возиться с чем-то подобным, вы можете проверить XVFB , чтобы запустить тесты на селен.

...