Веб-драйвер Selenium
Обновлено: 23.11.2024
Selenium WebDriver — одна из важнейших частей семейства тестовых наборов Selenium. Но прежде чем изучать Selenium WebDriver, давайте начнем с нескольких основных сведений о Selenium.
Что такое селен?
Selenium — это набор инструментов, которые широко используются в сообществе тестировщиков, когда речь идет о кроссбраузерном тестировании. Selenium не может автоматизировать настольные приложения; его можно использовать только в браузерах. Он считается одним из наиболее предпочтительных наборов инструментов для автоматического тестирования веб-приложений, поскольку обеспечивает поддержку популярных веб-браузеров, что делает его очень мощным.
Он поддерживает ряд браузеров (Google Chrome 12+, Internet Explorer 7,8,9,10, Safari 5.1+, Opera 11.5, Firefox 3+) и операционных систем (Windows, Mac, Linux/Unix).< /p>
BrowserStack теперь является первой облачной платформой автоматизации тестирования, объявившей о полной поддержке Selenium 4 и его API-интерфейсов BiDi. Узнайте больше.
Компоненты селена
Набор тестов Selenium состоит из четырех основных компонентов:
Selenium IDE (интегрированная среда разработки) — это прежде всего инструмент для записи/выполнения. Это надстройка или расширение, доступное как для Firefox, так и для Chrome, которое быстро генерирует тесты благодаря функциям записи и воспроизведения. Вам не нужно изучать какой-либо язык сценариев тестирования для разработки функциональных тестов.
В случае работы с Selenium RC (Remote Control) необходимо хорошее знание хотя бы одного языка программирования. Этот инструмент позволяет разрабатывать тесты адаптивного дизайна на любом языке сценариев по вашему выбору. Серверная и клиентская библиотеки — два основных компонента Selenium RC. Его архитектура сложна и имеет свои ограничения.
Selenium WebDriver — это расширенная версия Selenium RC. Он был представлен на рынке для преодоления ограничений, с которыми столкнулся Selenium RC. Хотя это расширенная версия RC, ее архитектура полностью отличается от RC. Как и Selenium RC, Selenium WebDriver поддерживает несколько платформ программирования, что обеспечивает большую гибкость и требует знания одного из языков программирования.
Selenium Grid — это инструмент, который используется для одновременного выполнения тестовых случаев в разных браузерах, компьютерах и операционных системах. Этот инструмент упрощает тестирование совместимости между браузерами. Существует две версии Selenium Grid: старая версия известна как Grid 1, а последняя версия известна как Grid 2.
Теперь давайте перейдем к руководству по Selenium WebDriver.
Что такое Selenium WebDriver?
Selenium WebDriver – это веб-платформа, позволяющая выполнять кроссбраузерные тесты. Этот инструмент используется для автоматизации тестирования веб-приложений, чтобы убедиться, что они работают должным образом.
Selenium WebDriver позволяет выбрать язык программирования для создания тестовых сценариев. Как обсуждалось ранее, это улучшение по сравнению с Selenium RC, позволяющее преодолеть несколько ограничений. Selenium WebDriver не может работать с оконными компонентами, но этот недостаток можно преодолеть с помощью таких инструментов, как Sikuli, Auto IT и т. д.
Теперь давайте попробуем понять архитектуру WebDriver.
Архитектура Selenium WebDriver Framework
Архитектура WebDriver состоит из четырех основных компонентов:
Клиентские библиотеки Selenium/языковые привязки
Selenium обеспечивает поддержку нескольких библиотек, таких как Ruby, Python, Java и т. д., поскольку разработчики Selenium разработали языковые привязки для обеспечения совместимости с несколькими языками. Например, если вы хотите использовать драйвер браузера в Python, используйте привязки Python. Вы можете скачать все поддерживаемые языковые привязки по вашему выбору с официального сайта Selenium.
Проводной протокол JSON
JSON — это аббревиатура от JavaScript Object Notation. Это открытый стандарт, предоставляющий транспортный механизм для передачи данных между клиентом и сервером в Интернете. Он обеспечивает поддержку различных структур данных, таких как массивы и объекты, что упрощает чтение и запись данных из JSON.
Драйверы браузера
Вы можете загрузить драйвер браузера по вашему выбору в соответствии с вашими языковыми требованиями. Например, вы можете настроить веб-драйвер Selenium для Python в BrowserStack.
При выполнении тестового сценария с помощью WebDriver в фоновом режиме выполняются следующие задачи:
Браузеры
Как обсуждалось ранее, Selenium обеспечивает поддержку нескольких браузеров, таких как Chrome, Firefox, Safari, Internet Explorer и т. д.
Заинтересованы в Selenium 4?Посетите подробный веб-семинар по Selenium 4 от Саймона Стюарта, руководителя проекта Selenium, создателя WebDriver и соредактора спецификации W3C WebDriver.
Основные шаги в скрипте Selenium WebDriver
- Создайте экземпляр WebDriver.
- Перейти на веб-страницу.
- Найдите веб-элемент на веб-странице с помощью локаторов в селене.
- Выполните одно или несколько действий пользователя над элементом.
- Предварительно загрузите ожидаемый результат/ответ браузера на действие.
- Выполнить тест.
- Запишите результаты и сравните их с ожидаемым результатом.
Чтобы запускать тесты, необходимо знать основные команды Selenium WebDriver.
Совет для профессионалов. Хотите глубже изучить реализацию Selenium в BrowserStack с помощью бесплатных интерактивных курсов и лабораторных упражнений? Посетите тестовый университет
Преимущества Selenium WebDriver
- Это один из самых популярных инструментов с открытым исходным кодом, с которым легко начать тестирование веб-приложений. Он также позволяет выполнять тестирование на совместимость с разными браузерами.
- Поддерживает несколько операционных систем, таких как Windows, Mac, Linux, Unix и т. д.
- Он обеспечивает совместимость с целым рядом языков, включая Python, Java, Perl, Ruby и т. д.
- Обеспечивает поддержку современных браузеров, таких как Chrome, Firefox, Opera, Safari и Internet Explorer.
- Selenium WebDriver ускоряет выполнение тестовых сценариев по сравнению с другими инструментами.
- Более лаконичный API (интерфейс прикладного программирования), чем у Selenium RC
- Он также обеспечивает совместимость с iPhoneDriver, HtmlUnitDriver и AndroidDriver.
Ограничения WebDriver
- Поддержка новых браузеров не всегда доступна по сравнению с Selenium RC.
- Для автоматической генерации результатов теста нет встроенной команды.
Как работает Selenium WebDriver
На высоком уровне Selenium WebDriver работает в три этапа:
В качестве примера рассмотрим приведенный ниже фрагмент кода:
После завершения написания кода запустите программу. Приведенный выше код приведет к запуску браузера Chrome, который перейдет на веб-сайт BrowserStack.
Теперь давайте разберемся, что происходит за кулисами, когда вы нажимаете кнопку «Выполнить» до запуска браузера Chrome.
URL-адрес после преобразования JSON выглядит следующим образом:
Типы запросов
Существует два типа запросов, с которыми вы, возможно, знакомы: GET и POST.
Как использовать Selenium WebDriver: пример
Приведенный ниже код автоматизирует функцию входа на странице входа BrowserStack в Chrome:
Приведенный выше код делает следующее:
- Создайте экземпляр Selenium WebDriver
- Настройте браузер, если требуется
- Перейдите к нужной веб-странице и найдите соответствующий веб-элемент.
- Выполнить действие над веб-элементом
- Проверьте и подтвердите действие
При выполнении кода Selenium перейдет в браузер Chrome и откроет страницу входа в Browserstack. Затем он войдет в систему, используя соответствующие учетные данные. Он также проверит статус тестового примера с помощью Assert и попытается сопоставить URL-адрес.
Для получения точных результатов все тесты Selenium должны выполняться на реальных устройствах. Начните проводить тесты на более чем 2000 реальных браузерах и устройствах в облаке реальных устройств BrowserStack. Запускайте параллельные тесты в Cloud Selenium Grid, чтобы получать более быстрые результаты без ущерба для точности. Выявляйте ошибки до того, как это сделают пользователи, тестируя программное обеспечение в реальных пользовательских условиях с помощью BrowserStack Automate.
Возможности BrowserStack Automate:
- Выполнить сотни одновременных тестов
- Интеграция с популярными языками, такими как Python, Java, и лучшими инструментами CI/CD, такими как Jenkins, CircleCI.
- Мгновенный доступ к более чем 2000 реальным устройствам и браузерам
- Комплексная отладка с использованием видеозаписей, автоматических скриншотов ошибок
- Безопасность корпоративного уровня и соответствие GDPR
Это руководство предназначено для того, чтобы познакомить новых пользователей со многими функциями и способами использования Selenium WebDriver. Изучив основы, изучите многие учебные пособия по Selenium в BrowserStack Guide, чтобы изучить и понять, почему Selenium WebDriver является одним из самых мощных ресурсов в наборе инструментов тестировщика.
Selenium Webdriver – это набор API с открытым исходным кодом, который используется для тестирования веб-приложений. Инструмент Selenium Webdriver используется для автоматизации тестирования веб-приложений, чтобы убедиться, что оно работает должным образом или нет. В основном он поддерживает такие браузеры, как Firefox, Chrome, Safari и Internet Explorer.Он также позволяет выполнять кроссбраузерное тестирование.
WebDriver также позволяет использовать язык программирования при создании тестовых сценариев (это невозможно в Selenium IDE).
Теперь вы можете использовать условные операции, такие как if-then-else или switch-case. Вы также можете выполнять зацикливание, например do-while.
Вам не обязательно знать их все. Вам просто нужно быть осведомленным в одном. Однако в этом руководстве мы будем использовать Java с Eclipse в качестве нашей IDE.
Разница между Selenium RC и Webdriver
До появления WebDriver в 2006 году существовал еще один инструмент автоматизации под названием Selenium Remote Control. И WebDriver, и Selenium RC имеют следующие функции:
- Они оба позволяют использовать язык программирования при разработке тестовых сценариев.
- Они оба позволяют запускать тесты в разных браузерах.
И чем они отличаются? Давайте обсудим ответы.
1. Архитектура
Архитектура WebDriver проще, чем у Selenium RC.
- Управляет браузером на уровне ОС.
- Все, что вам нужно, — это IDE вашего языка программирования (которая содержит ваши команды Selenium) и браузер.
Архитектура Selenium RC намного сложнее.
- Сначала вам нужно запустить отдельное приложение под названием Selenium Remote Control (RC) Server, прежде чем вы сможете начать тестирование.
- Selenium RC Server действует как «посредник» между вашими командами Selenium и вашим браузером
- Когда вы начинаете тестирование, Selenium RC Server «внедряет» в браузер программу Javascript под названием Selenium Core.
- После внедрения Selenium Core начнет получать инструкции, переданные RC Server из вашей тестовой программы.
- После получения инструкций Selenium Core выполнит их как команды Javascript.
- Браузер будет подчиняться инструкциям Selenium Core и передавать свой ответ на сервер RC.
- RC Server получит ответ браузера, а затем отобразит вам результаты.
- RC Server выберет следующую инструкцию из вашего тестового сценария, чтобы повторить весь цикл.
2. Скорость
WebDriver работает быстрее, чем Selenium RC, поскольку он обращается непосредственно к браузеру, используя для управления его собственный движок.
Selenium RC работает медленнее, так как использует программу Javascript под названием Selenium Core. Именно Selenium Core напрямую управляет браузером, а не вами.
3. Реальное взаимодействие
WebDriver более реалистично взаимодействует с элементами страницы. Например, если у вас есть отключенное текстовое поле на странице, которую вы тестировали, WebDriver действительно не может ввести в него какое-либо значение, как это не может сделать реальный человек.
Selenium Core, как и другие коды JavaScript, может получать доступ к отключенным элементам. В прошлом тестировщики Selenium жаловались, что Selenium Core мог вводить значения в отключенное текстовое поле в своих тестах. Различия в API
4. API
API Selenium RC более зрелый, но содержит избыточность и часто запутанные команды. Например, большую часть времени тестировщики не понимают, использовать ли type или typeKeys; или использовать щелчок, mouseDown или mouseDownAt. Хуже того, разные браузеры интерпретируют каждую из этих команд по-разному!
API WebDriver проще, чем Selenium RC. Он не содержит избыточных и запутанных команд.
5. Поддержка браузера
WebDriver может поддерживать автономный браузер HtmlUnit
HtmlUnit называется "безголовым", потому что это невидимый браузер — без графического интерфейса.
Это очень быстрый браузер, поскольку он не тратит время на ожидание загрузки элементов страницы. Это ускоряет циклы выполнения тестов.
Поскольку он невидим для пользователя, им можно управлять только с помощью автоматических средств.
Selenium RC не поддерживает автономный браузер HtmlUnit. Для работы ему нужен настоящий видимый браузер.
Ограничения WebDriver
WebDriver не поддерживает новые браузеры
Помните, что WebDriver работает на уровне ОС. Также помните, что разные браузеры взаимодействуют с ОС по-разному. Если выйдет новый браузер, он может иметь другой процесс взаимодействия с ОС по сравнению с другими браузерами. Таким образом, вы должны дать команде WebDriver некоторое время, чтобы понять этот новый процесс, прежде чем они смогут реализовать его в следующем выпуске WebDriver.
Однако команда разработчиков WebDriver должна решить, должны ли они поддерживать новый браузер или нет.
Selenium RC имеет встроенный генератор результатов тестирования
Selenium RC автоматически создает HTML-файл с результатами теста. Формат отчета был заранее установлен самим RC. Взгляните на пример этого отчета ниже.
В WebDriver нет встроенной команды, которая автоматически создает файл результатов теста. Вам придется полагаться на окно вывода вашей IDE или создать отчет самостоятельно, используя возможности вашего языка программирования, и сохранить его в виде текста, HTML и т. д.
WebDriver – это инструмент для автоматизации тестирования веб-приложений. Он широко известен как Selenium 2.0. WebDriver использует другую базовую структуру, в то время как Selenium RC использует JavaScript Selenium-Core, встроенный в браузер, который имеет некоторые ограничения. WebDriver напрямую взаимодействует с браузером без какого-либо посредника, в отличие от Selenium RC, который зависит от сервера. Он используется в следующем контексте —
Мультибраузерное тестирование, включая улучшенную функциональность для браузеров, которые плохо поддерживаются Selenium RC (Selenium 1.0).
Обработка нескольких фреймов, нескольких окон браузера, всплывающих окон и предупреждений.
Сложная навигация по страницам.
Расширенная навигация пользователя, например перетаскивание.
Элементы пользовательского интерфейса на основе AJAX.
Архитектура
WebDriver лучше всего объяснить с помощью простой схемы архитектуры, как показано ниже.
Selenium RC и WebDriver
Selenium RC | Selenium WebDriver | ||
---|---|---|---|
Архитектура Selenium RC сложна, так как перед началом теста сервер должен быть запущен и запущен. | Архитектура WebDriver проще, чем Selenium RC, поскольку он управляет браузером с уровня ОС. . | ||
Сервер Selenium действует как посредник между браузером и командами Selenese. | WebDriver напрямую взаимодействует с браузером и использует его движок для управления им. | ||
Скрипт Selenium RC выполняется медленнее, поскольку для взаимодействия с RC используется Javascript. | WebDriver быстрее, так как взаимодействует напрямую с браузером. | ||
Selenium RC не может поддерживать безголовое выполнение, так как для работы с ним требуется настоящий браузер. | WebDriver может поддерживать безголовое выполнение. | ||
Это простой и небольшой API. | Сложный и немного большой API по сравнению с RC. | ||
Менее объектно-ориентированный API. | td>Чисто объектно-ориентированный API. | ||
Невозможно тестировать мобильные приложения. | Можно тестировать приложения iPhone/Android. |
System.out.println("Заголовок страницы:" + driver.getTitle()); |
Всегда рекомендуется создавать отдельный метод для закрытия браузера, поэтому создайте метод с именем closeBrowser.
public void closeBrowser()
Итак, окончательный код будет выглядеть примерно так:
открытый класс FirstSeleniumTest
public void launchBrowser()
драйвер = новый FirefoxDriver();
public void searchProduct() генерирует InterruptedException
System.out.println("Заголовок страницы:" + driver.getTitle());
public void navigation() генерирует InterruptedException
public void closeBrowser()
public static void main(String[] args) выдает InterruptedException
FirstSeleniumTest obj = new FirstSeleniumTest();
Теперь запустите код. Запуск>>Запуск от имени>>Приложение Java.
После успешного запуска тестового сценария вы можете проверить, был ли напечатан заголовок страницы. Прокрутите консоль вниз, чтобы увидеть сообщение.
Вы создали свой первый тестовый набор Selenium!
Хотите больше практических занятий?
Чтобы узнать больше о Selenium и о том, как работают различные компоненты пакета, посмотрите видео Simplilearn "Учебное пособие по Selenium для начинающих", подготовленное отраслевыми экспертами. Из этого видео вы узнаете об этом инструменте и получите практическую демонстрацию работы с Selenium IDE и WebDriver.
Если вы хотите построить карьеру инженера по автоматизации, сертификационный курс по Selenium обязательно вам пригодится и поможет вам освоить весь пакет Selenium.
Сертификационный курс идеально подходит для:
- Менеджеры тестирования
- Инженеры-испытатели
- Лиды тестирования
- Аналитики тестирования
- Инженеры по контролю качества
- Разработчики программного обеспечения
- Инженеры, которые хотят научиться автоматизированному тестированию.
Найдите наш онлайн-учебный курс Full Stack Java Developer в ведущих городах:
Имя | Дата | Место | |
---|---|---|---|
Full Stack Java Разработчик | Когорта начинается 31 марта 2022 г., Группа выходного дня | Ваш город | Подробнее |
Full Stack Java Developer | Когорта начинается 13 апреля 2022 г., группа выходного дня | Ваш город | Подробнее | < /tr>
Полный стек разработчиков Java | Когорта начинается 14 апреля 2022 г., группа выходного дня | Ваш город | Просмотреть Детали |
Об авторе
Чинмайи Дешпанде
Чинмайи — аналитик-исследователь и страстный писатель. Будучи энтузиастом технологий, ее глубокие знания в этой области помогают ей разрабатывать структурированный контент и предоставлять его соответствующим образом.
Читайте также:
- Как выровнять свет в фотошопе
- Программа настройки микрофона для Android
- История coreldraw
- Антивирус, запоминающий исходное состояние программ каталогов и системных областей диска
- Как убрать алкоголь 120 полностью выиграть 10