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
Теперь напишем такой systemd юнит:
sudo vi /etc/systemd/system/selenium.service
Теперь выполните такие команды для добавления сервиса в автозагрузку и запуска:
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
Затем делаем файл сервиса для Selenium:
sudo vi /etc/systemd/system/selenium.service
Затем, как и в предыдущем случае, нам остается выполнить несколько команд 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
Готово. Теперь осталось выполнить скрипт и если все было сделано правильно, перед вами откроется браузер.
Выводы
В этой статье мы рассмотрели как установить Selenium в Ubuntu 18.04. С установкой программы надо поиграться, но возможности по автоматизации тестированию, которые она предоставляет однозначно того стоят.
Anubis – это максимально легкое open-source решение, созданное специально для защиты небольших веб-ресурсов от бесконечного потока запросов от ботов и AI парсеров. Этот инструмент можно считать "ядерным вариантом", потому что он заставляет ботов выполнять вычисления похожие на майнинг криптовалюты. Но это неплохая альтернатива для тех, кто не может или не хочет использовать Cloudflare. Посмотреть детали














$sudo chmod +x /usr/bin/local/geckodriver
Тут кажись опечатка , должно быть /usr/local/bin/geckodriver
Боже мой, какая мерзость... с python достаточно веб драйвер скачать, и библиотеку. Лол, сочувствую вам
С Node js - Puppeteer вообще ничего качать не нужно
Простите, может быть глупый вопрос но после запуска в командной строке 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 говорится... Или я что то не так сделал? Подскажите плз
что это за хрень? Куча каких то непонятных шагов.... для чего это все?
работаю с линуксами уже несколько лет
тупо хрееень
Большое спасибо, очень помогла статья
При установке GeckoDriver в Linux Mint вышла ошибка:
chmod: невозможно получить доступ к '/usr/bin/local/geckodriver': Нет такого файла или каталога
Как это исправить?
опечатка в статье. Нужно написать `sudo chmod +x /usr/local/bin/geckodriver` вместо `sudo chmod +x /usr/bin/local/geckodriver`
А без 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');'