Я использую Ruby на GUI -свободном сервере Ubuntu. Чтобы запустить тесты внешнего интерфейса с хромдрайвером (в режиме без головы), наш системный администратор установил chrome на docker платформе.
docker run -p 3000:3000 -e "MAX_CONCURRENT_SESSIONS=10" -e "WORKSPACE_DELETE_EXPIRED=true" -e "WORKSPACE_EXPIRE_DAYS=7" --restart unless-stopped -d --name browserless browserless/chrome:latest
У меня есть пример того, как подключиться к Chrome с Node.js, но я не смог найти такой подход / гем для Ruby. Кто-нибудь знает, как заставить chromedriver использовать docker chrome вместо локально установленного?
** EDIT **
Вот что Я попытался:
caps = Selenium::WebDriver::Remote::Capabilities.chrome("chromeOptions" => {"args" => [ "--headless", "--no-sandbox" ]})
driver = Selenium::WebDriver.for :remote, :url => "http://localhost:3000/webdriver", :desired_capabilities => caps
, и я получаю следующую ошибку:
Selenium :: WebDriver :: Error :: UnknownError: неизвестная ошибка: Chrome не удалось запустить: выход завершен ненормально. (неизвестная ошибка: файл DevToolsActivePort не существует) (Процесс, запущенный из chrome location / usr / bin / google-chrome, больше не выполняется, поэтому ChromeDriver предполагает, что Chrome произошел сбой.)