Что такое Selenium Вебдрайвер?
⚡ Умное резюме
Selenium WebDriver — это фреймворк автоматизации с открытым исходным кодом, который напрямую управляет реальными браузерами через нативные API, обеспечивая быстрое, надежное и кроссбраузерное тестирование веб-приложений с использованием таких языков, как... Java, Python, C#, и Ruby.
Что такое Selenium Вебдрайвер?
Selenium Вебдрайвер Это набор API с открытым исходным кодом, используемый для автоматизации тестирования веб-приложений. Он проверяет, работает ли веб-приложение должным образом в различных браузерах, включая Chrome. FirefoxСафари, Microsoft Edgeи Internet Explorer. WebDriver также поддерживает кроссбраузерное тестирование на различных операционных системах.
В отличие от Selenium IDE WebDriver позволяет использовать настоящий язык программирования для создания тестовых сценариев, что дает возможность применять условную логику, такую как if-then-else и switch-case, а также просматриватьping Конструкции, такие как for и do-while. WebDriver поддерживает следующие языки:
- Java
- .NET (С#)
- PHP
- Python
- Perl
- Ruby
- JavaСкрипт (с использованием WebDriverJS / WebDriverIO)
Вам не нужно изучать их все — достаточно освоить хотя бы один. В примерах этого урока используются Java с Eclipse IDE.
Archiструктура Selenium Вебдрайвер
Selenium WebDriver использует клиент-серверную архитектуру и управляет браузером непосредственно на уровне операционной системы. Для запуска любого скрипта вам потребуется только предпочитаемая вами среда разработки (IDE) для программирования (содержащая необходимые компоненты). Selenium команды) и целевой браузер.
Данная структура состоит из четырех ключевых компонентов: Selenium В состав WebDriver входят клиентские библиотеки (языковые привязки), протокол JSON Wire Protocol по HTTP, драйверы браузеров (такие как ChromeDriver и GeckoDriver) и сами браузеры. Каждый компонент взаимодействует посредством стандартизированных HTTP-запросов, что и обеспечивает WebDriver преимущества в скорости и точности, описанные ниже.
Скорость
WebDriver быстрее, чем Selenium RC, потому что он напрямую взаимодействует с браузером и использует его собственный движок для управления. Промежуточного звена нет. JavaСкриптовый прокси-сервер, устраняющий основное узкое место в производительности.
Реальное взаимодействие
WebDriver взаимодействует с элементами страницы так же, как это делал бы реальный пользователь. Например, если на тестируемой странице есть неактивное текстовое поле, WebDriver не сможет в него ввести текст — потому что реальный человек тоже не смог бы этого сделать. Такой реализм снижает количество ложных срабатываний в результатах тестирования.
API
WebDriver предоставляет чистый и простой API, не содержащий избыточных или запутанных команд, что упрощает чтение и сопровождение тестовых скриптов.
Поддержка браузера
WebDriver также поддерживает безголовый браузер HtmlUnit. Поскольку HtmlUnit не имеет графического интерфейса, он называется «безголовым» и работает незаметно в фоновом режиме. Это делает его чрезвычайно быстрым для выполнения тестов, поскольку не тратится время на рендеринг, и идеально подходит для конвейеров CI/CD, где графический интерфейс недоступен.
Как Selenium WebDriver работает пошагово.
С учетом архитектуры, вот как обычно выполняется тест WebDriver:
- Напишите тестовый скрипт на выбранном вами языке, используя Selenium клиентские библиотеки.
- Сериализация команд—переплет преобразует каждый Selenium вызов в рамках запроса по протоколу JSON Wire Protocol.
- Отправить драйверу браузера—Запрос поступает к локальному драйверу (ChromeDriver, GeckoDriver, EdgeDriver), который прослушивает локальный порт.
- Водитель дает указания браузеру используя собственный API автоматизации для щелчков мышью, ввода текста или чтения элементов.
- Браузер выполняет действия и отвечает.Возвращая результат в виде JSON-данных.
- Утверждать и сообщать—структура, например TestNG, JUnitИли же PyTest проверяет ответ и регистрирует результат — «пройдено» или «не пройдено».
Один и тот же скрипт может запускаться локально, внутри Docker, или на удалённых вычислительных системах, таких как... Selenium Сетка без изменений.
Selenium WebDriver против Selenium IDE против Selenium RC
Право Selenium Выбор инструмента зависит от цели тестирования. В таблице ниже приведено сравнение всех трех:
| Характеристика | Selenium IDE | Selenium RC | Selenium Вебдрайвер |
|---|---|---|---|
| Тип | Плагин для браузера | JavaСкриптовый прокси-сервер | Автоматизация нативных API |
| Скорость | Быстрое воспроизведение | Замедлять | Самый быстрый |
| Языки | Ничто | Многочисленные | Многочисленные |
| Безголовый браузер | Нет | Нет | Да |
| Статус | Ограниченный | Устаревшее | стандарт W3C |
Для современных проектов рекомендуется использовать WebDriver — стандартизированный W3C, активно поддерживаемый и обладающий самой широкой поддержкой языков программирования и браузеров.
Ограничения WebDriver
Несмотря на свою мощь, WebDriver имеет свои недостатки. Знание его ограничений поможет вам реалистично спланировать стратегию автоматизации.
WebDriver не может без проблем поддерживать совершенно новые браузеры.
Поскольку WebDriver работает на уровне операционной системы, а разные браузеры взаимодействуют с ОС по-разному, для каждого нового выпуска браузера может потребоваться обновленный драйвер. Команде разработчиков WebDriver требуется время для изучения процесса работы нового браузера, прежде чем они смогут выпустить совместимый драйвер. До тех пор некоторые команды могут работать непоследовательно или вовсе не работать в новом браузере.
Отсутствует встроенная функция отправки отчетов о тестировании.
Сам WebDriver не генерирует отчеты о результатах тестирования. Его необходимо интегрировать с фреймворком для модульного тестирования.TestNG, JUnitДля сбора сводных данных о прохождении/непрохождении тестов и создания скриншотов можно использовать NUnit, PyTest или библиотеку для создания отчетов (Allure, ExtentReports).


.jpg)




