Selenium – название полноценного пакета программного обеспечения с открытым исходным кодом. Используется для автоматизации операций, выполняемых браузерами.
Основная область применения – автоматизация тестирования веб-программ. Это не единственный вариант работы. В состав данного пакета включены приложения, позволяющие выполнять рутинные задачи системного администрирования веб-страниц, а также регулярного получения той или иной информации.
The Selenium – достаточно крупный проект. В его состав на данный момент включены такие программы как:
- IDE;
- RC;
- Selenium WebDriver Python;
- Grid;
- Server.
Каждый указанный пакет будет рассмотрен более подробно. После этого предстоит разобраться с плюсами и минусами упомянутого набора инструментов, а также выяснить, как правильно установить программное обеспечение и начать работать с ним.
IDE
Специальный плагин, который предназначается для работы с Firefox. С его помощью удается осуществлять запись пользовательских действий, операций тестировщиков. Соответствующие материалы будут использоваться системой для воспроизведения для организации тестирования.
IDE является библиотекой «Селениума», оснащенная специальным графическим интерфейсом. Здесь поддерживается работа со сценариями тестирования веб страниц. Данный инструмент позволяет генерировать код для RC или WebServer. Получившийся «исходный код» будет повторять записанные заранее действия, которые выполняет тот или иной клиент (пользователь).
RC
The Remote Control (или the RC) – одно из основных направлений развития «Селениума» в прошлом. Данный инструмент использовался в качестве удаленного управления веб браузером. Именно the RC в 2007-м году был заменен на WebDriver.
Функциональность упомянутого пакета сильно уступает WebDriver, но the RC до сих пор включен в его дистрибутив. На данный момент соответствующий инструмент перестал развиваться и обновляться.
Grid
Кластер, поддерживающий сразу несколько драйверов (driver) для Selenium. С их помощью можно:
- организовывать удаленную работу с браузером при помощи Интернета;
- управлять и создавать сети с большим количеством веб серверов на огромном количестве устройств;
- создавать параллельное тестирование.
За счет Grid получится значительно сэкономить время, а также ресурсы, необходимые для организации тестирования.
WebDriver
WebDriver – полноценная библиотека «Селениума», используемая для управления браузерами. Сейчас этот пакет является основным продуктом рассматриваемого набора инструментов. Он выражен семейством драйверов (drivers) для Chrome, Safari, Firefox и других Интернет-обозревателей. В состав Web Driver включены библиотеки, позволяющие заниматься разработкой программного обеспечения и драйверов на самых разных языках:
- Ruby;
- Python;
- C#;
- JavaScript;
- Java.
Соответствующий инструмент нельзя назвать готовым средством для автоматизации тестирования. Он является некой спецификацией программных интерфейсов для оперирования браузерами. Сюда же можно отнести референсные реализации браузерных интерфейсов и клиентские библиотеки для разработки программ.
The Web Driver – уникальный драйвер для Интернет-обозревателей. Библиотека, лишенная пользовательского интерфейса. Она используется для отладки взаимодействия с другим программным обеспечением, управления поведением браузеров, автотестов.
Нюансы работы с WebDriver
The WebDriver – пакет инструментов с весьма скудным интерфейсом управления. Данная особенность вызвана тем, что разработчики создавали проект, помогающий изначально упрощать работу с браузерами. Интернет-обозреватели получили ограничения – стандарты интерфейсов. Действующие правила указывают на то, что инструмент должен иметь минимальный набор команд, поддерживаемый всеми браузерами.
В процессе создания the WebDrivers на передовую была выдвинута задача по созданию пакета, в котором нет ничего лишнего. Стандартный интерфейс оперирования браузерами должен в конечном итоге являться стабильным, интуитивно понятным, а также достаточно простым.
По сравнению с the RC Selenium, рассматриваемый инструмент был лишен некоторых команд:
- select – использовался для выпадающих списков;
- uncheck;
- check.
Вместо указанных отдельных commands теперь реализация перечисленных манипуляций сводится к одному единственному click.
WebDriver поддерживает реализации для основной массы языков разработки. Дополнительно тут присутствует интеграция с самыми разными инструментами. Рассматриваемый элемент легко вписать в любой стек. The Selenium просто «сливается» с конкурентами, не стараясь «победить» их.
WebDriver API
Рассматривая the Selenium, необходимо понимать – соответствующий набор инструментов автоматизации и тестирования обновляется и совершенствуется на регулярной основе. На данный момент известно о наличии WebDriver 3.0. Он получил название API.
Соответствующий пакет – более совершенный the RC Selenium. В нем исправлены основные ошибки, встречающиеся у «предшественника». Цель создания – разработка объектно-ориентированного API с большим количеством поддерживаемых браузеров. Соответствующий интерфейс позволяет исправить проблемы современного тестирования. У проекта отсутствует привязка к тестовым фреймворкам, за счет чего допускается задействование любых фреймворков модульного тестирования.
Вот – несколько операций, которые возможны через WebDriver API. Данная таблица объясняет, какие команды помогают выполнять те или иные действия.
Плюсы и минусы Selenium
The Selenium в Python и других языках разработки представляет собой бесплатный пакет для тестирования, наделенный открытым исходным кодом. Он применяется в браузерах – Chrome, Firefox, Opera и других. Допускается использование the Selenium в операционных системах и непосредственно на мобильных платформах.
Рассматриваемый проект имеет несколько преимуществ:
- Гибкие инструменты организации тестирования. В основном им выступает WebDriver. Он поддерживает интеграцию с разнообразными тестовыми фреймворками и программными проектами для проверки контента.
- Широкий спектр современных инструментов для тестировщиков.
- Поддержка возможности использования the Selenium для узкоспециализированных задач. Примеры – web crawling или проверка производительности системы.
- Распространенность. Рассматриваемый набор инструментов вышел в 2004 году. Он сразу стал активно развиваться, совершенствоваться и распространяется. На данный момент the Selenium используется крупными организациями. Пример – Google.
Минусы рассматриваемый пакет инструментов тоже имеет. Selenium не имеет функций тестирования сетевых и десктопных программ по умолчанию. Проверки допускаются только относительно веб-приложений. Для полноценного функционирования the Selenium предстоит обучиться программированию и созданию скриптов.
Изучаемый набор инструментов в большей степени ориентирован на опытных специалистов в сфере разработки и тестирования. Для нормальной работы с Selenium требуются углубленные познания программирования. Новичкам освоить соответствующий инструмент будет весьма проблематично.
Начало работы
Теперь, когда стало ясно, что из себя представляет изучаемый пакет, можно приступить к его непосредственному применению. Далее будут взяты примеры и команды, используемые в Python.
Начало работы заключается в том, что Selenium требуется установить на устройство. Пример – в Visual Studio или другую среду разработки. В случае с Python добиться желаемого результата поможет специальная команда в консоли:
pip install selenium
Далее нужно инициализировать браузер на устройство. За счет WebDriver рассматриваемый пакет инструментов поддерживает множество Интернет-обозревателей. Пример – Chrome или Firefox. Необходимо установить драйверы для the Selenium выбранного браузера.
В случае с Chrome потребуется Chrom Webdriver. Отыскать его можно здесь. В разделе «Справка» у браузера сначала требуется уточнить версию программного обеспечения. Также необходимо запомнить – для Windows x64 требуется скачать driver win32.
Непосредственная инициализация производится так:
- Распаковать архив в любую папку. Пример – C:\chromedriver.
- Написать такой код в проекте the Selenium: . Здесь executable_path – путь к драйверу.
- Запустить проект.
Если все сделано верно, пользователь увидит Google Chrome, в котором откроется страница «О нас».
После завершения процедуры инициализации предстоит убедиться в том, что он расположен в системной переменной PATH операционной системы. Как только все готово, можно приступать к непосредственной разработке и тестированию.
Создание проекта
Чтобы начать работу с Selenium, необходимо осуществить импорт веб-драйвера. А еще – создать браузерный экземпляр:
Далее может быть использован объект driver для выполнения разнообразных операций в браузере. Пример – открытие веб-сайта. В этом поможет команда the Python Selenium driver.get («сайт»).
Компоненты на странице
Рассматриваемый набор инструментов поддерживает обнаружение и взаимодействие с различными компонентами на веб-сервисе. Пример – элемент может быть обнаружен при помощи идентификатора. Поможет в реализации соответствующей задачи команда:
Допускается применение иных методов организации поиска:
- Find_element_by_name – по имени;
- Find_element_by_class_name – по классу;
- Find_element_by_tag_name – по тегу.
Предложенные команды не являются исчерпывающими. Существуют иные методы поиска компонентов на странице, просто указанные выше встречаются чаще остальных.
Взаимодействие с элементами тоже обеспечивается за счет специальных команд. Примеры – ввод текста в поле или нажатие на кнопку. Для них необходимо воспользоваться методами send_keys и click:
Выше – наглядный пример реализации соответствующих операций. После того, как разработчик выполнит необходимые ему операции, браузер требуется закрыть. Для данной операции используется метод driver.quit.
Ключевые операции
WebElement – это практически то же самое, что и HTML-элемент. С ним можно взаимодействовать точно также, как и в случае с конечным пользователем. Вот несколько наиболее распространенных команд:
- element.text – внутренний текст;
- .parent – доступ к родительским компонентам с типом WebDriver;
- .get_attribute(‘href’) – определенные атрибуты, как href тега a;
- .click – щелчок по компоненту;
- .send_keys (‘Вводимый_текст’) – ввод текстовых данных, если операция возможна.
Все это – лишь начало для работы с the Selenium. Лучше разобраться с соответствующим набором инструментов поможет не только официальная документация и видео-уроки, но и специализированные компьютерные курсы.
P. S. Хотите знать больше? Обратите внимание на курсы по тестированию в Otus. Присутствуют варианты как для продвинутых, так и для начинающих пользователей.