ставим хромиум из реп
далее нужен chromedriver. например отсюда
https://chromedriver.storage.googleapis.com/110.0.5481.30/chromedriver_linux64.zip
запускаем на порту 4444
./chromedriver --port=4444
далее тянем php-webdriver последней версии
git clone https://github.com/php-webdriver/php-webdriver
для него нужен еще
aptitude install composer
далее в стянутом гит-проекте
composer install
далее оказалось, что мне нужен пхп 7.3 вместо 7.0
но это уж слишком, поэтому я просто скачал версию постарее, 1.12.0.
после composer install появилась папка vendor, но autoload в ней не было.
причем install закончился с ошибкой
[RuntimeException]
Could not scan for classes inside "tests/functional/" which does not appear to be a file nor a folder
да, папки tests в проекте 1.12.0 не было. взял из latest, который пытался ставить изначально, запустил снова composer install и все появилось!
в latest версии есть также example.php, беру его оттуда, прописываю $host = 'http://localhost:4444'; и запускаю
$ php example.php
ошибка
PHP Fatal error: Uncaught Facebook\WebDriver\Exception\WebDriverCurlException: Curl error thrown for http POST to /session with params: {"capabilities":{"firstMatch":[{"browserName":"chrome"}]},"desiredCapabilities":{"browserName":"chrome","platform":"ANY"}}
Operation timed out after 30001 milliseconds with 0 bytes received in /storage/www/selenium/phpwebd/php-webdriver-1.12.0/lib/Remote/HttpCommandExecutor.php:333
ошибка в консоли chromedriver (запущенного от рута)
[28187:28187:0114/163530.390663:ERROR:zygote_host_impl_linux.cc(89)] Running as root without --no-sandbox is not supported. See https://crbug.com/638180.
запускаю chromedriver под своим юзером, пробую снова
не работает.
действие, кстати, происходит в виртуалке LXC proxmox под debian 8.10
походу X11 нужен, но в виртуалках это нетривиальная задача
вот тут хак какой-то предлагается
https://unix.stackexchange.com/questions/30847/fast-x-for-lxc-guest-on-localhost
но я так понял, все равно нужен доступ к хост-системе
есть другой путь
установка vnc4server, запуск # vncserver
уже дало кое что. DISPLAY=:1 xclock запустилось
в суматохе было установлено также xserver-xorg-video-dummy, насколько оно нужно, неясно (upd: не нужно).
после чего и хром уже ожил, но только под рутом пока.
DISPLAY=:1 chromium --verbose --no-sandbox
под обычным юзером DISPLAY=:1 xclock не может открыть дисплей
поэтому запускать vncserver надо под юзером, под которым и хром будет запускаться, т.е. ваши php-скрипты
после запуска в выводе есть индекс дисплея, скорее всего :1
делаем export DISPLAY=:1
пробуем запуск chromium, получаем уже какой-то живой вывод
[11117:11167:0114/172737.647984:ERROR:bus.cc(396)] Failed to connect to the bus: Could not parse server address: Unknown address type (examples of valid types are "tcp" and on UNIX "unix")
ATTENTION: default value of option force_s3tc_enable overridden by environment.
[11160:11160:0114/172737.826114:ERROR:sandbox_linux.cc(364)] InitializeSandbox() called with multiple threads in process gpu-process.
(chromium:11117): LIBDBUSMENU-GLIB-WARNING **: Unable to get session bus: Unknown or unsupported transport 'disabled' for address 'disabled:'
ну и кажется php example.php теперь тоже отработал!