Путь к просветлению начался с попытки сузить проблему.
По крайней мере эти части должны работать для запуска скриптов:
- Селен и друзья (
webdriverio
, ChromeDriver и т. Д.) - Хром и зависимости должны быть установлены
- Xvfb должен работать
- Chrome должен работать на Xvfb
- Chrome должен как-то запускаться на Xvfb при запуске через Selenium
Чтобы работать через это: selenium-standalone start
Казалось, что работает без ошибок, поэтому 1 было в порядке. 2, 3 и 4, казалось, работали, как xvfb-run google-chrome --disable-gpu
работали нормально. Не уверен насчет 5 ...
Один указатель, который указывал в направлении комбинации Chrome + Selenium, не работал, была одна строка в выводе:
Chrome failed to start: exited abnormally
Мы знаем, что Chrome работает, если X на месте. Мы знаем, что Chrome не работает, если X не на месте.
Ну, чтобы запустить 5, мне нужно было как-то добавить Xvfb в микс, что оставило мне два варианта. Или оберните процесс узла или процесс селена. Первое не сработало, а второе сработало!
В одном терминале:
xvfb-run selenium-standalone start
Во втором терминале:
node /tmp/script.js
И наконец я получил правильный ответ
init ok Title is: DuckDuckGo
Некоторая дополнительная помощь по отладке при настройке
Это платит, чтобы просмотреть следы стека исключений Selenium при попытке отладить, что не так.
Когда вы получаете это, вы можете быть уверены, что вам не хватает Chrome или он не установлен
Caused by: org.openqa.selenium.WebDriverException: unknown error: cannot find Chrome binary (Driver info: chromedriver=2.30.477691 (6ee44a7247c639c0703f291d320bdf05c1531b57),platform=Linux 3.16.0-4-amd64 x86_64) (WARNING: The server did not provide any stacktrace information)
Если у вас нет подходящей версии Chrome для Chromedriver, например, если вы только установили Chromium (мой случай!), Вы увидите эту ошибку:
Caused by: org.openqa.selenium.SessionNotCreatedException: session not created exception: Chrome version must be >= 58.0.3029.0 (Driver info: chromedriver=2.30.477691 (6ee44a7247c639c0703f291d320bdf05c1531b57),platform=Linux 3.16.0-4-amd64 x86_64) (WARNING: The server did not provide any stacktrace information)
Убедитесь google-chrome-stable
в том, $PATH
что вы можете успешно выполнить его в автономной системе.
Дополнительные советы по настройке Проверьте эту автоматическую настройку . Много хороших указателей.