4 шага: установка и запуск
0. Установка JAVA
$ sudo apt install openjdk-8-jre
или так
$ sudo apt install openjdk jre
1. Установка драйвера
1.1 Установка Chromedriver
Официальная документация: https://www.selenium.dev/documentation/getting_started/installing_browser_drivers/
$ wget https://chromedriver.storage.googleapis.com/94.0.4606.61/chromedriver_linux64.zip
актуальная версия драйвера тут – https://sites.google.com/a/chromium.org/chromedriver/downloads или тут https://chromedriver.storage.googleapis.com/index.html
$ unzip chromedriver_linux64.zip $ sudo mv chromedriver /usr/bin/chromedriver $ sudo chown root:root /usr/bin/chromedriver $ sudo chmod +x /usr/bin/chromedriver
1.2 Установка Geckodriver (Firefox)
$ wget https://github.com/mozilla/geckodriver/releases/download/v0.30.0/geckodriver-v0.30.0-linux64.tar.gz
актуальная версия драйвера тут – https://github.com/mozilla/geckodriver/releases
$ tar -xvzf geckodriver_linux64.tar.gz $ sudo mv geckodriver /usr/local/bin/geckodriver $ sudo chown root:root /usr/local/bin/geckodriver $ sudo chmod +x /usr/local/bin/geckodriver
2. Установка Selenium
Заходим на страницу https://www.selenium.dev/downloads/ ищем актуальную версию и качаем
$ wget https://github.com/SeleniumHQ/selenium/releases/download/selenium-3.141.59/selenium-server-standalone-3.141.59.jar
запуск с помощью Java-машины
$ java -jar selenium-server-standalone-3.141.59.jar
Если вы хотите запускать программу на сервере, где не установлена графическая оболочка, то вам понадобится пакет xvfb, в котором реализован виртуальный фреймбуфер в памяти:
$ sudo apt install xvfb libxi6 libgconf-2-4 $ xvfb-run java -jar selenium-server-standalone-3.141.59.jar
Если вы не хотите запускать Selenium вручную, можно настроить автоматический запуск программы при старте системы. Сначала надо переместить Selenium в какую нибудь системную директорию, например, в /usr/local/bin
:
$ sudo mv selenium-server-standalone-3.141.59.jar /usr/local/bin/
Создайте нового пользователя, от имени которого будет работать Selenium:
$ sudo useradd -d /tmp/ selenium
3. Настройка Selenium и Systemd в графике
Далее надо разрешить этому пользователю подключаться к дисплейному серверу и в автозагрузку. Может потребоваться команда
$ sudo apt install x11-xserver-utils
$ xhost +SI:localuser:selenium
Открыть редактор:
$ vi ~/.xinitrc
Вставить строку:
$ xhost +SI:localuser:selenium
Сохранить и выйти(Esc -> :wq -> Enter).
Теперь напишем такой systemd юнит:
$ sudo vi /etc/systemd/system/selenium.service
[Unit] Description=Selenium Server After=multi-user.target [Service] Type=simple WorkingDirectory=/tmp/ Environment=DISPLAY=:0 ExecStart=/usr/bin/java -jar /usr/local/bin/selenium-server-standalone-3.141.59.jar WantedBy=multi-user.target KillMode=process User=selenium [Install] WantedBy=multi-user.target
Теперь выполните такие команды для добавления сервиса в автозагрузку и запуска:
$ sudo systemctl --system daemon-reload $ sudo systemctl enable selenium $ sudo systemctl start selenium
4. Настройка Selenium и Systemd в XVFB
Если вы захотите запускать Selenium на сервере без графического интерфейса, то вам понадобится виртуальный фреймбуфер xvfb
. Для этого сначала установите эту утилиту:
$ sudo apt install xvfb
Далее создадим файл сервиса для запуска xvfb
:
$ sudo vi /etc/systemd/system/xvfb.service
[Unit] Description=X virtual framebuffer [Service] Type=simple User=root ExecStart=/usr/bin/Xvfb :99 -ac [Install] WantedBy=multi-user.target
Затем делаем файл сервиса для Selenium:
$ sudo vi /etc/systemd/system/selenium.service
[Unit] Description=Selenium Standalone Server Requires=xvfb.service After=xvfb.service [Service] Type=simple User=selenium WorkingDirectory=/tmp/ Environment=DISPLAY=:99 ExecStart=/usr/bin/java -jar /usr/local/bin/selenium-server-standalone-3.141.59.jar [Install] WantedBy=multi-user.target
Затем, как и в предыдущем случае, нам остается выполнить несколько команд systemd, чтобы перечитать конфигурационные файлы с диска:
$ sudo systemctl --system daemon-reload $ sudo systemctl start xvfb $ sudo systemctl start selenium