Главная >> Инструкции >> Установка Selenium в Linux

Установка Selenium в Linux

Selenium - это платформа для автоматического тестирования веб-приложений, которая позволяет не только тестировать программное обеспечение, но и создавать различные программы для автоматизации задач, выполняемых в браузере. Программа может работать с браузером так же, как и человек - двигать мышкой, кликать, листать страницы, находить элементы по классу, имени, css селектору или xpath, а также делать снимки веб-страницы.

Платформа работает на Java и для подключения к браузерам использует драйвера браузеров. Есть драйвер для Chrome, Firefox, Opera, IE. Также в рамках Chrome можно пользоваться эмулятором мобильных платформ. В этой статье мы рассмотрим как выполняется установка Selenium Linux на примере Ubuntu.


Содержание статьи

Установка Selenium в Linux

1. Установка Java

Поскольку для работы программы нужна Java, сначала вам придется её установить. Вы можете воспользоваться статьей установка java в linux чтобы найти как установить этот пакет программ в свою систему. В Ubuntu можно установить версию OpenJDK такой командой:

sudo apt install openjdk-8-jre

Я специально написал в заголовке linux, на не Ubuntu, или другой дистрибутив, потому, что установка в большинстве дистрибутивов практически не будет отличаться. Далее вам нужно установить браузер, скачать драйвера для нужных браузеров, а потом скачать исполняемый файл Selenium и всё.

2. Установка браузеров и драйверов

Поддержку IE в Linux, получить не получится, но мы можем работать с Chrome и Firefox. Для установки этих браузеров выполните:

sudo apt install firefox chromium-browser

Скачайте самую последнюю версию драйвера для Chrome из официальной страницы. Обратите внимание, что версия драйвера должна соответствовать версии вашего браузера. Версию Chrome можно узнать открыв chrome://settings/help

Для Chrome 76 нужно использовать такую же версию драйвера.

На данный момент самая свежая - это ChromeDriver 76.0.3809.68:

wget https://chromedriver.storage.googleapis.com/76.0.3809.68/chromedriver_linux64.zip

Далее распакуйте полученный архив и переместите драйвер в папку /usr/local/bin:

unzip chromedriver_linux64.zip
sudo mv chromedriver /usr/local/bin/chromedriver
sudo chown root:root /usr/local/bin/chromedriver
sudo chmod +x /usr/local/bin/chromedriver

Теперь надо установить selenium webdriver для Firefox. Он называется GeckoDriver и скачать его можно на этой странице. Аналогично, надо распаковать полученный архив и переместить файл geckodriver в /usr/local/bin:

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

Далее можно переходить к установке Selenium в Linux.

3. Установка Selenium

Платформа selenium представляет из себя обычную java программу, которую можно скачать на официальном сайте.

На момент написания статьи самая последняя версия программы 3.141.59:

wget https://selenium-release.storage.googleapis.com/3.141/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/bin/local:

sudo mv selenium-server-standalone-3.141.59.jar /usr/local/bin/

Создайте нового пользователя, от имени которого будет работать Selenium:

sudo useradd -d /tmp/ selenium

4. Настройка Selenium и systemd в графике

Далее надо разрешить этому пользователю подключаться к дисплейному серверу:

xhost +SI:localuser:selenium

И в автозагрузку:

vi ~/.xinitrc

xhost +SI:localuser:selenium

Теперь напишем такой systemd юнит:

sudo vi /etc/systemd/system/selenium.service

[Unit]
Description=Selenium Standalone 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

5. Настройка 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

6. Настройка Selenium и PHP

За время развития Selenium для него было написано множество библиотек для разных языков. Дальше мы рассмотрим как использовать эту программу вместе с PHP. Благодаря стараниям Facebook это возможно. Только необходимо установить пакет facebook/webdriver с помощью composer:

composer require facebook/webdriver

Далее вы можете использовать эту библиотеку в своих скриптах:

vi test-selenium.php

<?php
require ('./vendor/autoload.php');
use Facebook\WebDriver\Remote\DesiredCapabilities;
use Facebook\WebDriver\Remote\RemoteWebDriver;
use Facebook\WebDriver\Remote\DriverCommand;
use Facebook\WebDriver\WebDriverExpectedCondition;
use Facebook\WebDriver\WebDriverBy;
$host = 'http://localhost:4444/wd/hub';
$desiredCapabilities = DesiredCapabilities::chrome();
$driver = RemoteWebDriver::create($host, $desiredCapabilities);
$driver->get("https://google.com");

Готово. Теперь осталось выполнить скрипт и если все было сделано правильно, перед вами откроется браузер.

Выводы

В этой статье мы рассмотрели как установить Selenium в Ubuntu 18.04. С установкой программы надо поиграться, но возможности по автоматизации тестированию, которые она предоставляет однозначно того стоят.

Оцените статью

Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (8 оценок, среднее: 3,63 из 5)
Загрузка...
Creative Commons License
Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .

9 комментариев к “Установка Selenium в Linux”

  1. Простите, может быть глупый вопрос но после запуска в командной строке java -jar selenium-server-standalone-#.jar где я должен по вашему пункту 6 разместить этот php скрипт? У меня в браузере в адресной строке http://localhost:4444/ Открывается страница :
    Selenium Standalone v.3.141.59
    Whoops! The URL specified routes to this help page. и тд... А дальше куда??? Захожу в консоль, выбираю браузер.. Скрипт php откуда запускать?Если выбрать load script, то он предлагает: "Open a page that has the WebDriverJS client. The page will be opened with the query parameters required to communicate with the server." Вроде тут про JS говорится... Или я что то не так сделал? Подскажите плз

    Ответить
  2. что это за хрень? Куча каких то непонятных шагов.... для чего это все?

    работаю с линуксами уже несколько лет

    тупо хрееень

    Ответить
  3. При установке GeckoDriver в Linux Mint вышла ошибка:
    chmod: невозможно получить доступ к '/usr/bin/local/geckodriver': Нет такого файла или каталога
    Как это исправить?

    Ответить
  4. А без php обойтись можно как-то?
    Запускаю - вот, ошибка:
    ~/selenium_java$ ./test-selenium.php
    ./test-selenium.php: line 1: ?php: No such file or directory
    ./test-selenium.php: line 2: syntax error near unexpected token `'./vendor/autoload.php''
    ./test-selenium.php: line 2: `require ('./vendor/autoload.php');'

    Ответить

Оставьте комментарий