Selenium Web driver — это инструмент веб-автоматизации, который позволяет запускать тесты для разных браузеров. Этими браузерами могут быть Internet Explorer, Firefox или Chrome. Для использования определенного браузера с Selenium вам нужен соответствующий драйвер.
При запуске теста Selenium запускает соответствующий браузер, вызываемый в скрипте, и выполняет шаги теста. Вы можете увидеть браузер и выполнение теста в действии.
Что такое безголовый браузер?
Безголовый браузер — это веб-браузер без графического интерфейса пользователя . Эта программа будет вести себя как браузер, но не будет отображать никакой графический интерфейс.
Некоторые примеры безголовых водителей включают
- HtmlUnit
- привидение
- PhantomJS
- ZombieJS
- Watir-WebDriver
В этом уроке мы сосредоточимся на HtmlUnit и PhatomJS
HTMLUnitDriver
HTML UnitDriver является самым легким и быстрым реализацией безголового браузера для WebDriver. Он основан на HtmlUnit. Он известен как драйвер браузера без головы . Это то же самое, что и драйвер Chrome, IE или FireFox, но у него нет графического интерфейса, поэтому нельзя увидеть выполнение теста на экране.
Особенности драйвера модуля HTML
- Поддержка протоколов HTTPS и HTTP
- Поддержка ответов HTML (нажатие на ссылки, отправка форм, просмотр модели DOM документа HTML и т. Д.)
- Поддержка куки
- Поддержка прокси-сервера
- Поддержка базовой и NTLM-аутентификации
- Отличная поддержка JavaScript
- Поддержка отправки методов GET и POST
- Возможность настройки заголовков запросов, отправляемых на сервер
- Способность определить, должны ли сбои ответов от сервера вызывать исключения или должны быть возвращены как страницы соответствующего типа
Шаги по использованию драйвера HTMLUnit с Selenium
Шаг 1) В Eclipse скопируйте следующий код. Добавьте в проект файлы стандартной библиотеки селена. Никаких дополнительных файлов JAR не требуется.
package 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) { // Creating a new instance of the HTML unit driver WebDriver driver = new HtmlUnitDriver(); // Navigate to Google driver.get("http://www.google.com"); // Locate the searchbox using its name WebElement element = driver.findElement(By.name("q")); // Enter a search query element.sendKeys("Guru99"); // Submit the query. Webdriver searches for the form using the text input element automatically // No need to locate/find the submit button element.submit(); // This code will print the page title System.out.println("Page title is: " + driver.getTitle()); driver.quit(); } }
Шаг 2) Запустите код. Вы увидите, что браузер не запущен, а результаты отображаются в консоли.
Преимущества драйвера модуля HTML:
- Поскольку он не использует графический интерфейс для тестирования, ваши тесты будут выполняться в фоновом режиме без визуального прерывания
- По сравнению со всеми другими экземплярами выполнение выполняется быстрее
- Для запуска ваших тестов через драйвер HtmlUnit вы также можете выбрать другие версии браузера
-
Он не зависит от платформы и позволяет выполнять несколько тестов одновременно. Идеально подходит для нагрузочного тестирования .
Ограничения:
- Он не может эмулировать поведение других браузеров JavaScript
PhantomJS
PhantomJS — это автономный браузер с JavaScript API. Это оптимальное решение для автономного тестирования веб-сайтов, доступа к веб-страницам и управления ими, а также стандартного API DOM.
Чтобы использовать PhantomJS с Seleniun, нужно использовать GhostDriver. GhostDriver — это реализация протокола Webdriver Wire в простом JS для PhantomJS.
Последний выпуск PhatomJS имеет встроенный GhostDriver, и нет необходимости отдельно устанавливать его.
Вот как работает система:
Шаги для запуска Selenium с PhatomJS
Шаг 1) Вам нужно Eclipse с установленным Selenium
Шаг 2) Загрузите PhantomJS здесь
Шаг 3) Извлеките загруженную папку в Program Files
Шаг 4) Загрузите драйвер PhantomJS отсюда . Добавьте банку в ваш проект
Шаг 5) Вставьте следующий код в Eclipse
package 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 class phantom { public static void main(String[] args) { File file = new File("C:/Program Files/phantomjs-2.0.0-windows/bin/phantomjs.exe"); System.setProperty("phantomjs.binary.path", file.getAbsolutePath()); WebDriver driver = new PhantomJSDriver(); driver.get("http://www.google.com"); WebElement element = driver.findElement(By.name("q")); element.sendKeys("Guru99"); element.submit(); System.out.println("Page title is: " + driver.getTitle()); driver.quit(); } }
Шаг 6) Запустите код. Вы увидите, что вывод отображается в консоли, а браузер не запускается.
ПРИМЕЧАНИЕ . При первом запуске, в зависимости от ваших настроек, вы можете получить предупреждение безопасности от Windows, чтобы разрешить запуск PhantomJS. Нажмите на Разрешить доступ.
Многие организации используют Phantom.JS для различных целей, например,
- Тестирование без головы
- Скриншот
- Автоматизация страницы
- Мониторинг сети
- Чтобы сделать скриншоты панели инструментов для своих пользователей
- Для запуска модульных тестов в командной строке
- Создание справочников сотрудников из HTML в PDF
- В сочетании с QUnit для набора тестов
Резюме
Для быстрого тестирования приложения в различных браузерах и без каких-либо визуальных прерываний используется тестирование без браузера . Благодаря своей скорости, точности и легкости доступа к функциям, драйвер HTML-модуля и PhantomJS приобретают все большую популярность для тестирования безголового браузера. Выполнив несколько простых шагов, вы узнаете, насколько легко эти инструменты могут быть интегрированы с другими инструментами и могут выполнять тестовый код.