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