Драйвер Selenium Web - это инструмент веб-автоматизации, который позволяет запускать тесты в разных браузерах. Этими браузерами могут быть Internet Explorer, Firefox или Chrome. Чтобы использовать конкретный браузер с Selenium, вам нужен соответствующий драйвер.
При тестовом запуске Selenium запускает соответствующий браузер, вызываемый в скрипте, и выполняет шаги теста. Вы можете увидеть браузер и выполнение теста в действии.
Что такое безголовый браузер?
Безголовый браузер - это веб-браузер без графического пользовательского интерфейса . Эта программа будет вести себя так же, как браузер, но не будет отображать графический интерфейс.
Некоторые из примеров безголовых драйверов включают
- HtmlUnit
- Призрак
- PhantomJS
- ZombieJS
- Watir-webdriver
В этом уроке мы сосредоточимся на HtmlUnit и PhatomJS.
HTMLUnitDriver
HTML UnitDriver - это самый легкий и самый быстрый безголовый браузер для WebDriver. Он основан на HtmlUnit. Он известен как Headless Browser Driver . Он такой же, как драйвер Chrome, IE или FireFox, но у него нет графического интерфейса, поэтому выполнение теста на экране не видно.
Особенности драйвера блока HTML
- Поддержка протоколов HTTPS и HTTP
- Поддержка ответов HTML (нажатие на ссылки, отправка форм, просмотр модели DOM документа HTML и т. Д.)
- Поддержка файлов cookie
- Поддержка прокси-сервера
- Поддержка базовой и NTLM аутентификации
- Отличная поддержка JavaScript
- Поддержка методов отправки GET и POST
- Возможность настройки заголовков запросов, отправляемых на сервер.
- Возможность определять, должны ли ошибочные ответы от сервера вызывать исключения или должны быть возвращены как страницы соответствующего типа.
Шаги по использованию драйвера HTMLUnit с Selenium
Шаг 1) В Eclipse скопируйте следующий код. Добавьте в проект стандартные файлы библиотеки селена. Никаких дополнительных файлов jar не требуется.
пакет htmldriver;import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.WebElement;import org.openqa.selenium.htmlunit.HtmlUnitDriver;public class htmlUnitYest {public static void main (String [] args) {// Создание нового экземпляра драйвера модуля HTMLДрайвер WebDriver = новый HtmlUnitDriver ();// Переходим в Googledriver.get ("http://www.google.com");// Найдите окно поиска по его имениWebElement element = driver.findElement (By.name ("q"));// Вводим поисковый запросelement.sendKeys ("Guru99");// Отправляем запрос. Webdriver автоматически ищет форму, используя элемент ввода текста// Нет необходимости искать / находить кнопку отправкиelement.submit ();// Этот код напечатает заголовок страницыСистема. out .println ("Заголовок страницы: + driver.getTitle ());driver.quit ();}}
Шаг 2) Запустите код. Вы увидите, что браузер не запущен, а результаты отображаются в консоли.
Преимущества драйвера HTML-модуля:
- Поскольку он не использует графический интерфейс для тестирования, ваши тесты будут работать в фоновом режиме без каких-либо визуальных прерываний.
- По сравнению со всеми другими экземплярами выполнение происходит быстрее
- Для запуска тестов через драйвер HtmlUnit вы также можете выбрать другие версии браузера.
- Он не зависит от платформы и проще запускать несколько тестов одновременно. Идеально подходит для нагрузочного тестирования.
Ограничения:
- Он не может имитировать поведение JavaScript других браузеров.
PhantomJS
PhantomJS - это безголовый браузер с JavaScript API. Это оптимальное решение для автономного тестирования веб-сайтов, доступа к веб-страницам и управления ими, оно поставляется со стандартным DOM API.
Чтобы использовать PhantomJS с Seleniun, нужно использовать GhostDriver. GhostDriver - это реализация протокола Webdriver Wire на простом JS для PhantomJS.
В последний выпуск PhatomJS интегрирован GhostDriver, и нет необходимости устанавливать его отдельно.
Вот как работает система:
Шаги по запуску Selenium с PhatomJS
Шаг 1) Вам нужен Eclipse с установленным Selenium
Шаг 2) Загрузите PhantomJS здесь
Шаг 3) Извлеките загруженную папку в Program Files.
Шаг 4) Загрузите драйвер PhantomJS отсюда. Добавьте банку в свой проект
Шаг 5) Вставьте следующий код в eclipse
пакет htmldriver;import java.io.File;import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.WebElement;import org.openqa.selenium.phantomjs.PhantomJSDriver;фантом общественного класса {public static void main (String [] args) {Файл файл = новый файл ("C: / Program Files / phantomjs-2.0.0-windows / bin / phantomjs.exe");System.setProperty ("phantomjs.binary.path", file.getAbsolutePath ());Драйвер WebDriver = новый PhantomJSDriver ();driver.get ("http://www.google.com");WebElement element = driver.findElement (By.name ("q"));element.sendKeys ("Guru99");element.submit ();System.out.println ("Заголовок страницы: + driver.getTitle ());driver.quit ();}}
Шаг 6) Запустите код. Вы увидите, что вывод отображается в консоли, а браузер не запускается.
ПРИМЕЧАНИЕ . При первом запуске, в зависимости от ваших настроек, вы можете получить предупреждение системы безопасности от Windows, чтобы разрешить запуск PhantomJS. Щелкните Разрешить доступ.
Многие организации используют Phantom.JS для различных целей, например,
- Безголовое тестирование
- Скриншот
- Автоматизация страниц
- Сетевой мониторинг
- Для рендеринга скриншотов панели управления для своих пользователей
- Чтобы запустить модульные тесты в командной строке
- Создание справочников сотрудников из HTML в PDF
- В сочетании с QUnit для набора тестов
Резюме
Чтобы быстро протестировать приложение в различных браузерах и без каких-либо визуальных помех, используется Headless browser Testing. Благодаря своей скорости, точности и простоте доступа к функциям драйвер HTML-модуля и PhantomJS набирают популярность для тестирования браузеров без подключения к компьютеру. Выполнив несколько простых шагов, вы узнаете, насколько легко эти инструменты могут быть интегрированы с другими инструментами и могут выполнять тестовый код.