Учебники

44) Драйвер HTMLUnit и PhantomJS

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) Запустите код. Вы увидите, что браузер не запущен, а результаты отображаются в консоли.

HTMLUnitDriver и PhantomJS для безголового тестирования селена

Преимущества драйвера модуля HTML:

  • Поскольку он не использует графический интерфейс для тестирования, ваши тесты будут выполняться в фоновом режиме без визуального прерывания
  • По сравнению со всеми другими экземплярами выполнение выполняется быстрее
  • Для запуска ваших тестов через драйвер HtmlUnit вы также можете выбрать другие версии браузера
  • Он не зависит от платформы и позволяет выполнять несколько тестов одновременно. Идеально подходит для нагрузочного тестирования .

Ограничения:

  • Он не может эмулировать поведение других браузеров JavaScript

PhantomJS

PhantomJS — это автономный браузер с JavaScript API. Это оптимальное решение для автономного тестирования веб-сайтов, доступа к веб-страницам и управления ими, а также стандартного API DOM.

Чтобы использовать PhantomJS с Seleniun, нужно использовать GhostDriver. GhostDriver — это реализация протокола Webdriver Wire в простом JS для PhantomJS.

Последний выпуск PhatomJS имеет встроенный GhostDriver, и нет необходимости отдельно устанавливать его.

Вот как работает система:

HTMLUnitDriver и PhantomJS для безголового тестирования селена

Шаги для запуска Selenium с PhatomJS

Шаг 1) Вам нужно Eclipse с установленным Selenium

Шаг 2) Загрузите PhantomJS здесь

HTMLUnitDriver и PhantomJS для безголового тестирования селена

Шаг 3) Извлеките загруженную папку в Program Files

HTMLUnitDriver и PhantomJS для безголового тестирования селена

Шаг 4) Загрузите драйвер PhantomJS отсюда . Добавьте банку в ваш проект

HTMLUnitDriver и 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. Нажмите на Разрешить доступ.

HTMLUnitDriver и PhantomJS для безголового тестирования селена

Многие организации используют Phantom.JS для различных целей, например,

  • Тестирование без головы
  • Скриншот
  • Автоматизация страницы
  • Мониторинг сети
  • Чтобы сделать скриншоты панели инструментов для своих пользователей
  • Для запуска модульных тестов в командной строке
  • Создание справочников сотрудников из HTML в PDF
  • В сочетании с QUnit для набора тестов

Резюме

Для быстрого тестирования приложения в различных браузерах и без каких-либо визуальных прерываний используется тестирование без браузера . Благодаря своей скорости, точности и легкости доступа к функциям, драйвер HTML-модуля и PhantomJS приобретают все большую популярность для тестирования безголового браузера. Выполнив несколько простых шагов, вы узнаете, насколько легко эти инструменты могут быть интегрированы с другими инструментами и могут выполнять тестовый код.