WebDriver. Обзор и принцип работы

Last updated 5 months ago

Selenium Webdriver - инструмент для автоматизации реального браузера, как локально, так и удалённо, наиболее близко имитирующий действия пользователя.

Selenium 2 (или Webdriver) - последнее пополнение в пакете инструментов Selenium которое является основным вектором развития проекта. Это абсолютно новый инструмент автоматизации. По сравнению с Selenium RC Webdriver использует совершенно иной способ взаимодействия с браузерами. Он напрямую вызывает команды браузера, используя родной для каждого конкретного браузера API. Как совершаются эти вызовы и какие функции они выполняют зависит от конкретного браузера. В то же время Selenium RC внедрял javascript код в браузер при запуске и использовал его для управления веб-приложением. Таким образом, Webdriver использует способ взаимодействия с браузером более близкий к действиям реального пользователя.

Самое главное изменение новой версии Selenium - это Webdriver API.

Selenium 1.0 (RC) + WebDriver = Selenium 2.0

По сравнению с более старым интерфейсом он обладает рядом преимуществ:

  • Интерфейс Webdriver был спроектирован более простым и выразительным;

  • Webdriver обладает более компактным и объектно-ориентированным API;

  • Webdriver управляет браузером более эффективно, а также справляется с некоторыми ограничениями, характерными для Selenium RC, как загрузка и отправление файлов, попапы и диалоги.

Для работы с Webdriver необходимо 3 основных программных компонента: 1. Браузер, работу которого пользователь хочет автоматизировать. Это реальный браузер определённой версии, установленный на определённой ОС и имеющий свои настройки (по умолчанию или кастомные). На самом деле Webdriver может работать и с "ненастоящими" браузерами, но подробно о них позже. 2. Для управления браузером совершенно необходим driver браузера. Driver на самом деле является веб-сервером, который запускает браузер и отправляет ему команды, а также закрывает его. У каждого браузера свой driver. Связано это с тем, что у каждого браузера свои отличные команды управления и реализованы они по-своему. Найти список доступных драйверов и ссылки для скачивания можно на официальном сайте Selenium проекта. 3. Скрипт/тест, который содержит набор команд на определённом языке программирования для драйвера браузера. Такие скрипты используют Selenium Webdriver bindings (готовые библиотеки), которые доступны пользователям на различных языках.