Ошибка при запуске скрипта selenium ruby ​​​​через xvfb-run

Что я пытаюсь сделать

Используйте селен и его рубиновые привязки, чтобы открыть хром и прочитать значение из DOM. Эта часть отлично работает, однако мне нужно запустить ее на сервере Linux без головы. Казалось достаточно простым, поэтому я запустил его с помощью xvfb-run с помощью этой команды:

export PATH=$PATH:./bin
xvfb-run --server-arg="-screen 0, 1024x768x16" ruby script.rb

Первая строка добавляет двоичный файл chromedriver к PATH, а вторая строка запускает скрипт через xvfb. Я получил это, работая над коробкой EC2 ubuntu, которая по сути является коробкой разработчика. Все прекрасно.

Теперь пришло время запустить его на другой машине EC2 с Ubuntu, используя тот же скрипт bash. Выдает ошибку, что не удалось найти двоичный файл chromedriver. Странно, так как на другой коробке все работало нормально. Проверил, бинарник есть. Я вручную добавляю его в путь и снова запускаю скрипт bash, та же ошибка. После некоторого устранения неполадок и гугления я нашел это:

https://code.google.com/p/selenium/wiki/ChromeDriver

Это говорит о том, что chromedriver должен быть символически связан с /usr/bin/google-chrome. Опять же странно, так как он отлично работает на другом компьютере и на моей локальной машине без этой символической ссылки. Я сделал символическую ссылку на это место, и теперь я получаю эту ошибку:

/usr/local/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.41.0/lib/selenium/webdriver/remote/response.rb:51:in `assert_ok': unknown error: Chrome failed to start: exited abnormally (Selenium::WebDriver::Error::UnknownError)

Я никогда не получал этого на моем локальном или dev-боксе. Есть идеи? Это проблема с chromedriver, xvfb или средой, в которой он работает? Какая-то разница в поле развертывания, которое будет отличаться от окна разработчика, которое мне не хватает?


person Kylee    schedule 22.10.2014    source источник
comment
Пробовали ли вы использовать гем Headless?   -  person simonwo    schedule 23.10.2014
comment
Да, я видел это, но избегал этого, поскольку это потребует изменения кода, а не того, как запустить код. Я попробую, если не смогу найти решение этой проблемы. Спасибо.   -  person Kylee    schedule 23.10.2014


Ответы (1)


Я понял это. Непонимание указаний здесь. Установил google-chrome в /usr/bin и все заработало.

person Kylee    schedule 25.10.2014