Как запустить сценарий selenium-webdriver, написанный на Ruby, в режиме без головы на капле «цифровой океан»? - PullRequest
0 голосов
/ 06 февраля 2019

Я не могу запустить скрипты ruby ​​на цифровой-океанической капле.Я пробовал работать с селеном, webdriver и watir, но не работает.

Я попытался запустить разные версии chromedriver, изменил также версии gem для selenium-webdriver, но не сработал.Мой ruby ​​-v: ruby ​​2.3.1p112 selenium-webdriver -v: (3.141.0) Chromedriver -v: 2.46

требуется 'selenium-webdriver'

options = Selenium :: WebDriver:: Chrome :: Options.new (args: ['start-maximized', 'disable-gpu', 'no-sandbox', 'disable-setuid-sandbox', 'disable-dable-dev-shm-Использование'],двоичный: ('/ bin / chromedriver')) options.headless!

driver = Selenium :: WebDriver.for (: chrome, options: options)

Ошибка, которую я получаю: / usr /share / rvm / gems / ruby-2.3.1 / gems / selenium-webdriver-3.141.0 / lib / selenium / webdriver / remote / response.rb: 69: в `assert_ok ': неизвестная ошибка: не удалось запустить Chrome: вышелненормально (Selenium :: WebDriver :: Error :: UnknownError) неизвестная ошибка: файл DevToolsActivePort не существует)

Спасибо за внимание!

1 Ответ

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

Вот так я запускаю Chrome в режиме без головы:

options = Selenium::WebDriver::Chrome::Options.new(args: ['headless'])
driver = Selenium::WebDriver.for :chrome, options: options

Некоторые аргументы передаются неправильно, режим без головы должен быть включен.Вам также не понадобится binary: ('/bin/chromedriver'), если ваш chromedriver.exe правильно добавлен в PATH.

Так что для приведенного выше примера должно работать следующее:

    options = Selenium::WebDriver::Chrome::Options.new(args: ['headless', 
    'start-maximized','disable-gpu', 'no-sandbox', 'disable-setuid-sandbox', 
    'disable-dable-dev-shm-usage'])
     driver = Selenium::WebDriver.for :chrome, options: options

Надеюсь, это поможет, Дэн

...