Close
Software Test Studio logo

Software Test Studio

Назад

Selenium WebDriver

image

Selenium Webdriver - это инструмент для автоматизации действий веб-браузера. Версия Selenium Webdriver 2.0. работает по принципу обращения к командам браузера взаимодействуя через API конкретного браузера. Предыдущая версия Selenium RC Webdriver (Selenium Webdriver 1.0.) использовала для работы внедрение javascript в код браузера для управления действиями, что менее соответствует реальным действиям пользователя.

Первая версия Selenium состояла из IDE, RC и Grid. Позже туда был добавлен Selenium Webdriver и версия была названа Selenium WebDriver v2.0. Когда была выпущена версия Selenium Webdriver 3.0 , то RC был признан устаревшим и перемещен в соответствующий пакет.

Image

WebDriver довольно обширно интегрировался со многими языками программирования, на сегодняшний момент он поддерживается C #, Java, Perl, PHP, Python и Ruby и его можно запускать в самых используемых на сегодняшний день браузерах.

Для интеграции WebDriver-а с браузерами необходимо использовать драйверы браузеров, за исключением Firefox поскольку он использует встроенную реализацию. Наиболее используемые драйверы:

•   Драйвер Google Chrome
•   Драйвер Internet Explorer
•   Драйвер Opera
•   Драйвер Safari
•   Драйвер HTML-модуля (запуск драйвера без запуска браузера)

Selenium WebDriver - Архитектура

Selenium WebDriver API осуществляет взаимодействие между языками программирования и браузерами.
Схематично архитектурное представление Selenium WebDriver выглядит так:

Image

Языковые привязки / Клиентские библиотеки

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

Протокол JSON Wire

JSON (JavaScript Object Notation) - это текстовый формат обмена данными, основанный на JavaScript, который легко обрабатывается и генерируется программами.

JSON Wire Protocol представляет собой транспортный механизм для передачи данных между сервером и клиентом. Протокол JSON Wire является отраслевым стандартом для различных веб-сервисов REST.

Драйверы браузера

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

•   HTTP-запрос генерируется и отправляется драйверу браузера для каждой команды Selenium
•   Драйвер получает HTTP-запрос через HTTP-сервер
•   HTTP-сервер решает все шаги для выполнения инструкций, которые выполняются в браузере
•   Статус выполнения отправляется обратно на HTTP-сервер, который затем отправляется обратно сценарию автоматизации

Особенности Selenium WebDriver

•   Поддержка нескольких браузеров: Mozilla Firefox, Google Chrome, Internet Explorer, Opera, Safari, в том числе редкие браузеры, такие как HTMLUnit

Image

•   Языки программирования (Java, C#, JavaScript, PHP, Ruby, Pearl, Python). Пользователь может выбрать любой из языков программирования в зависимости от своей компетенции и приступить к созданию тестовых сценариев

•   Скорость: WebDriver работает быстрее по сравнению с другими инструментами Selenium Suite.

image

В отличие от RC, он не требует никакого промежуточного сервера для связи с браузером; скорее инструмент напрямую взаимодействует с браузером.

•   Простота: большинство команд, используемых в Selenium WebDriver, легко реализовать. Например, для запуска браузера в WebDriver используется следующая комбинация:

WebDriver driver = new FirefoxDriver(); (Firefox browser )
WebDriver driver = new ChromeDriver(); (Chrome browser)
WebDriver driver = new InternetExplorerDriver(); (Internet Explorer browser)

•   WebDriver - методы и классы: WebDriver позволяет тестировщикам иметь дело со сложными типами веб-элементов, чекбоксы, дропдауны и алерты с помощью динамических средств поиска.

image
Автоматизированное тестирование