Установка Selenium на Ubuntu 20.04

Установка Selenium на Ubuntu 20.04

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

запуск Selenium

Если вы хотите запускать программу на сервере, где не установлена графическая оболочка, то вам понадобится пакет xvfb, в котором реализован виртуальный фреймбуфер в памяти:

$ sudo apt install xvfb libxi6 libgconf-2-4
$ xvfb-run java -jar selenium-server-standalone-3.141.59.jar

run xvfb

Если вы не хотите запускать 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

Leave a Reply

Your email address will not be published. Required fields are marked *