Вот то, что я узнал после целой дневной и ночной борьбы, пытаясь запустить селен с последней версией Chrome на виртуальной машине Ubuntu.

Вам нужно выяснить три основных момента;

chromium-browser or google-chrome-stable

chromedriver

Xvfb

Давайте рассмотрим их пошагово (спойлер: поделюсь установочными фрагментами)

Chrome-браузер

Это актуальный браузер Chrome, основа.

Когда вы устанавливаете google-chrome-stable, вы фактически получаете последнюю версию chromium-browser. Здесь нет ничего хитрого.

хромированная отвертка

chromedriver - это двоичный файл, необходимый для автоматического тестирования (селен).

Эта часть сложна, потому что chromedriver должна иметь ту же версию, что и chromium-browser. Если вы скопируете то, что нашли в stackoverflow, вы потратите впустую часы, как и я сегодня.

Вы можете найти последние версии chromedriver по этой ссылке.

Xvfb

Проще говоря, Xvfb - это сервер отображения в памяти для UNIX-подобной операционной системы. Говоря простым языком: «Для запуска Chrome нужен дисплей, и Xvfb это делает».

Тогда давайте установим;

sudo apt-get install xvfb

Мы воспользуемся этим позже.

Теперь самое интересное

установить NodeJS

Я использовал NodeJS 8.x, вы можете предпочесть любую версию по вашему выбору.

sudo apt-get update
sudo apt-get install curl
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install nodejs build-essential
sudo npm install -g npm

установить клиент Selenium NodeJS

npm install selenium-webdriver

добавить простой тестовый скрипт

vim rollOutExperiment.js

откройте google.com и верните внутренний текст <html>

Всякий раз, когда я получаю сообщение об ошибке от драйвера Chrome и выполняю поиск, все, что я нахожу, - это все, кто упоминает, что мне нужно добавить следующие флаги. Лучше держи их подальше 😅

--disable-dev-shm-usage & —-no-sandbox

запустить дисплей и запустить фиктивный тест

Xvfb :1 -screen 0 1024x768x24 & export DISPLAY=:1
node rollOutExperiment.js

Да вот и все. Я не смог найти свежую статью с этой подборкой и потерял лишние часы, поэтому хочу поделиться своим опытом. Сообщите мне, если вы найдете это полезным.