Веб драйвер селениум как установить

Обновлено: 05.07.2024

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

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

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

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

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

Я специально написал в заголовке 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:

Далее распакуйте полученный архив и переместите драйвер в папку /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:

Далее загруженную программу можно запустить с помощью 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 в графике

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

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

Теперь напишем такой 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

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

<?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. С установкой программы надо поиграться, но возможности по автоматизации тестированию, которые она предоставляет однозначно того стоят.

Нет похожих записей


Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.

В этом гайде мы разберем, как установить Selenium WebDriver.

Примечание: Версии Java, Eclipse и Selenium постоянно обновляются. Но порядок действий для установки не зависит от этих версий. Просто выбирайте последние версии и выполняйте шаги этого руководства.

Шаг 1. Устанавливаем Java



JDK включает в себя и Java Runtime Environment (JRE), поэтому не нужно скачивать и устанавливать его отдельно.

После завершения установки открываем командную строку и вводим java . Если ваша консоль выглядит так же, как на изображении ниже, можно переходить к следующему шагу.


Шаг 2. Устанавливаем Eclipse IDE

Скачиваем актуальную версию Eclipse IDE for Java Developers (дистрибутив по ссылке). Если вы работаете в Windows, обратите внимание, что есть отдельные версии Eclipse для 32-разрядных и 64-разрядных архитектур.


После скачивания устанавливаем Eclipse:


Выбираем Eclipse IDE for Java Developers:


В Installation Folder указываем папку, в которую нужно установить Eclipse (мы выбираем c:\Eclipse )


После завершения установки запускаем Eclipse:

Шаг 3. Скачиваем Selenium Java Client Driver


Шаг 4. Настраиваем Eclipse для работы с WebDriver

1. Запускаем Eclipse.

2. При выборе workspace, выбираем папку по умолчанию.


В следующем окне устанавливаем следующие конфигурации:

  1. Имя проекта
  2. Папка проекта
  3. Окружения для запуска (execution JRE)
  4. Layout проекта

4. Нажимаем правой кнопкой мыши на созданном проекте и выбираем New > Package. Вводим имя пакета (в нашем случае это будет newpackage)



5. В новом пакете создаем Java-класс. Кликаем правой кнопкой мыши по пакету и выбираем New > Class. Вводим имя класса (в нашем случае это будет NewClass).



После создания класса IDE должна выглядеть, как на изображении ниже:


Добавим Selenium WebDriver в Java Build Path



Выбираем все файлы внутри папки libs:

Выбираем файлы внутри папки Library:


После добавления нажимаем Apply and Close:


6. После добавления необходимых JAR-файлов ваш проект должен выглядеть как на изображении ниже:


Поздравляем, мы завершили импорт Selenium в наш проект!

Другие драйвера

Эти драйвера разные для разных браузеров. Например, драйвер для IE можно использовать только вместе с IE, для других браузеров он не подойдет.

Заключение

Кроме браузера, для использования WebDriver, понадобятся:

Важно не забывать импортировать файлы драйвера в Eclipse проект.

Какой была ваша первая зарплата в QA и как вы искали первую работу?

Мега обсуждение в нашем телеграм-канале о поиске первой работы. Обмен опытом и мнения.

ОСТАВЬТЕ ОТВЕТ Отменить ответ

Похожее

Контролируем тестовые девайсы (и тестировщиков) в Slack

“Лень это двигатель прогресса как известно, она привела к появлению множества полезных изобретений. В нашей компании, лень менеджеров привела к изобретениям.

У нас в компании был парк из 50 тестовых девайсов. Их все надо было проверять, сверять версии операционки, доступность для тестеров, и возврат к сроку. Если у вас в компании есть опыт обслуживания парка тестовых девайсов, то должно быть знакомо, сколько это занимает времени, и как утомляет эта монотонная работа. Проверить все смартфоны в момент выдачи и приемки, уровень аккумуляторов, убедиться что смартфон вернули вовремя, это часть работы лида или менеджера.

Вильфредо Парето говорит: сосредоточься на главном

“Все любят работать с малыми усилиями и заниматься лишь любимыми делами, но не у всех получается. Люди тратят время на все подряд, и мало внимания обращают на вещи, приносящие реальный результат.

Сосредоточиться на важном - ключ к успеху в любой профессии вообще, а не только в тестировании.

Правило Парето 80/20 - компактный и важный принцип, улучшающий продуктивность тестировщика, упрощающий его рабочие процессы. Здесь обсудим этот чудесный принцип, и его применение в тестировании софта.

Ведь можно тратить очень мало усилий, и при этом получать очень приличные результаты.







Что пишут в блогах

Подписаться

Онлайн-тренинги

Что пишут в блогах (EN)

Разделы портала

Про инструменты

Автор: Энди Найт (Andy Knight)
Оригинал статьи
Перевод : Ольга Алифанова

Теперь, когда наш тест-проект создан, напишем несколько Web UI-тестов при помощи Selenium WebDriver!

Что такое WebDriver?

WebDriver – это программируемый интерфейс для взаимодействия с живыми веб-браузерами. Он позволяет тест-автоматизации открывать браузер, передавать клики, вводить символы, удалять текст, и чисто завершать работу с браузером. Интерфейс WebDriver рекомендован W3C. Самый популярный вариант реализации стандартов WebDriver – это Selenium WebDriver, бесплатный инструмент с открытым исходным кодом.

У WebDriver несколько компонентов:

Установка Selenium WebDriver

Для нашего тест-проекта мы будем использовать Python-комплекты Selenium WebDriver, а также Google Chrome и ChromeDriver. Можно пользоваться любым браузером, но давайте возьмем Chrome – у него, во-первых, очень высокая доля рынка, а во-вторых, есть инструменты разработчика, которые пригодятся позднее.

Убедитесь, что на вашей машине установлена самая свежая версия Chrome (для проверки и обновления Chrome перейдите в меню и выберите Help > About Google Chrome. Другой вариант – загрузите и установите его отсюда). Затем скачайте подходящую версию ChromeDriver тут и добавьте его в ваши системные пути.

Убедитесь, что СhromeDriver работает из командной строки:

  1. $ chromedriver
  2. Starting ChromeDriver 73.0.3683.68 (47787ec04b6e38e22703e856e101e840b65afe72) on port 9515
  3. Only local connections are allowed.
  4. Please protect ports used by ChromeDriver and related test frameworks to prevent access by malicious code.

Затем установите пакет Selenium Python в наше окружение:

Теперь машина готова для веб-тестирования!

Новые тесты

Создайте новый модуль Python в директории tests/ по имени test_web.py. Этот новый модуль будет содержать наши Web UI-тесты. Теперь добавьте следующие импорты:

Зачем они нам нужны?

  • pytest будет использоваться для фикстур
  • Chrome предоставляет комплект ChromeDriver.
  • Keys содержат специальные нажатия клавиш для браузерных взаимодействий.

Настройка и очистка WebDriver

Хорошая практика – когда каждый тест-кейс использует собственную копию WebDriver. Настройка и очистка добавляют несколько секунд к каждому тесту, однако отдельная копия для каждого теста сохраняет их простоту, безопасность и независимость. Если один тест наткнется на проблему, это не затронет другие тесты. К тому же использование отдельной копии WebDriver для каждого теста позволяет запускать их параллельно.

Лучше всего настраивать WebDriver при помощи фикстуры pytest. Фикстуры – это модные функции pytest для настройки и очистки, а еще они умеют внедрять зависимости. Любой тест, требующий копии WebDriver, может просто вызвать фикстуру для его получения.

Код

Добавьте вот такой код в tests/test_web.py:

  1. @pytest.fixture
  2. def browser():
  3. driver = Chrome()
  4. driver.implicitly_wait(10)
  5. yield driver
  6. driver.quit()

browser – это фикстурная функция pytest, как указано в декораторе @pytest.fixture. Давайте рассмотрим каждую строчку, чтобы понимать, что делает эта новая фикстура.

Строки

Chrome() инициализирует копию ChromeDriver на локальной машине, используя настройки по умолчанию. Возвращенный объект драйвера привязан к копии ChromeDriver. Все вызовы WebDriver будут выполняться через него.

Метод implicitly_wait говорит драйверу подождать существования элементов не более 10 секунд, прежде чем пытаться их найти. Механизм ожидания довольно умен – вместо того, чтобы спать полные 10 секунд, он прекратит ожидание сразу после появления элемента. Неявные ожидания декларируются один раз, и затем автоматически используются для всех элементов. В отличие от них, явные ожидания могут быть заданы отдельно для каждого взаимодействия – ценой необходимости явных вызовов ожидания. Хорошая практика – использовать один стиль ожидания эксклюзивно для тест-автоматизации. Смешивание явных и неявных ожиданий может иметь мерзкие и неожиданные побочные эффекты. Для нашего проекта неявное 10-секундное ожидание должно быть достаточным (если у вас медленное Интернет-соединение, повысьте этот таймаут для компенсации).

Фикстура pytest должна возвращать значение, сообщающее, что именно настраивалось. Наша фикстура возвращает ссылку на инициализированный WebDriver. Однако вместо выражения return она использует yield, что означает, что фикстура – генератор. Первая итерация фикстуры – в нашем случае, инициализация WebDriver – это фаза "настройки", которая вызывается до того, как начался тест. Вторая итерация – вызов выхода – это фаза очистки, вызывающаяся после завершения теста. Запись фикстур как генераторов объединяет в одно целое связанные операции настройки и очистки.

Всегда выходите из копии WebDriver в конце теста, что бы ни случилось. Процессы драйвера на тест-машине не всегда умирают после окончания автоматизации. Отсутствие явного выхода из копии драйвера может оставить его запущенным как зомби-процесс – а это может привести к потреблению и даже блокировке системных ресурсов.

Загрузите и установите Java Software Development Kit (JDK) здесь .

Как скачать и установить Selenium WebDriver

Как скачать и установить Selenium WebDriver

Эта версия JDK поставляется в комплекте с Java Runtime Environment (JRE), поэтому вам не нужно отдельно загружать и устанавливать JRE.

После завершения установки откройте командную строку и введите «java». Если вы видите следующий экран, вы можете перейти к следующему шагу

Как скачать и установить Selenium WebDriver



Дважды щелкните файл, чтобы установить Eclipse. Откроется новое окно. Нажмите Eclipse IDE для разработчиков Java.


После этого откроется новое окно, в котором нажмите кнопку с меткой 1 и измените путь на «C: \ eclipse». Публикация, которая нажимает на кнопку «Установить» с отметкой 2


После успешного завершения процедуры установки появится окно. В этом окне нажмите Launch


Это начнет затмение неоновых IDE для вас.

Вы можете скачать Selenium Java Client Driver здесь . Там вы найдете клиентские драйверы для других языков, но выберите только драйвер для Java.


  1. Запустите файл «eclipse.exe» в папке «eclipse», которую мы извлекли на шаге 2. Если вы правильно выполнили шаг 2, исполняемый файл должен находиться в C: \ eclipse \ eclipse.exe.
  2. Когда вас попросят выбрать рабочее место, просто примите местоположение по умолчанию.


3. Создайте новый проект через Файл> Создать> Проект Java. Назовите проект как «новый проект».


Откроется новое всплывающее окно, введите следующие данные

  1. название проекта
  2. Место для сохранения проекта
  3. Выберите исполнение JRE
  4. Выберите вариант макета проекта
  5. Нажмите на кнопку Готово


4. На этом этапе

  1. Щелкните правой кнопкой мыши по вновь созданному проекту и
  2. Выберите New> Package и назовите этот пакет как «newpackage».


Откроется всплывающее окно с именем пакета,

  1. Введите название пакета
  2. Нажмите на кнопку Готово


5. Создайте новый класс Java в newpackage, щелкнув его правой кнопкой мыши и выбрав «New> Class», а затем назовите его «MyClass». Ваша Eclipse IDE должна выглядеть как на рисунке ниже.


Когда вы нажмете на Class, откроется всплывающее окно, введите детали как

  1. Наименование класса
  2. Нажмите на кнопку Готово


Вот так это выглядит после создания класса.


Теперь селен WebDriver в Java Build Path

  1. Щелкните правой кнопкой мыши «новый проект» и выберите « Свойства» .
  2. В диалоговом окне «Свойства» нажмите «Путь сборки Java».
  3. Нажмите на вкладку Библиотеки , а затем
  4. Нажмите «Добавить внешние файлы JAR ..»


Когда вы нажмете «Добавить внешние JAR-файлы», откроется всплывающее окно. Выберите файлы JAR, которые вы хотите добавить.


После выбора файлов JAR, нажмите кнопку ОК.

Выберите все файлы в папке lib.


Выберите файлы вне папки lib

Как скачать и установить Selenium WebDriver

После этого нажмите кнопку «Применить и закрыть»

Как скачать и установить Selenium WebDriver

6. Добавьте все файлы JAR внутри и снаружи папки «libs». Ваш диалог свойств теперь должен выглядеть примерно так, как показано ниже.


7. Наконец, нажмите OK, и мы закончили импортировать библиотеки Selenium в наш проект.

Разные водители

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

Вы можете скачать эти драйверы здесь

Резюме

Помимо браузера вам потребуется следующее, чтобы начать использовать WebDriver

При запуске проекта WebDriver в Eclipse не забудьте импортировать файлы драйвера клиента Java в ваш проект. Эти файлы составят вашу библиотеку Selenium.

В новой версии Selenium нет браузера, который вы могли бы автоматизировать без использования Driver Server.

Читайте также: