Pilote HTMLUnit dans Selenium

Un navigateur sans tรชte est un navigateur Web sans interface utilisateur graphique. Il peut fonctionner en arriรจre-plan sans distractions visuelles. Il offre un moyen efficace et efficient de tester des applications Web tout en รฉconomisant du temps et des ressources. Dans ce didacticiel, nous verrons ce qu'est un navigateur sans tรชte, quand utiliser les tests de navigateur sans tรชte et comment l'effectuer ร  l'aide de Selenium.

Qu'est-ce que le navigateur sans tรชte ?

Un navigateur sans tรชte est un navigateur Web sans interface utilisateur graphique. Ce programme se comportera comme un navigateur mais n'affichera aucune interface graphique.

Certains des exemples de pilotes sans tรชte incluent

  • Unitรฉ HTML
  • Ghost
  • PhantomJS
  • ZombieJS
  • Watir-pilote Web

Quand utiliser les tests de navigateur sans tรชte ?

ร€ lโ€™รจre numรฉrique dโ€™aujourdโ€™hui, les applications Web sont dรฉveloppรฉes pour รชtre compatibles avec un large รฉventail dโ€™appareils et de plates-formes. Cela reprรฉsente souvent un dรฉfi pour les dรฉveloppeurs de sites Web qui doivent garantir que leurs applications fonctionnent de maniรจre transparente sur ces plates-formes. Les tests de navigateur sans tรชte sont une solution idรฉale ร  ce problรจme car ils permettent aux dรฉveloppeurs de tester leurs applications Web sans avoir besoin d'une interface utilisateur graphique. En utilisant les tests de navigateur sans tรชte, les dรฉveloppeurs peuvent facilement tester des applications Web complexes avec plusieurs composants et dรฉpendances, ouvrant la voie ร  un dรฉveloppement plus rapide, ร  un code sans bug et ร  des utilisateurs satisfaits.

Test du navigateur sans tรชte avec Selenium

Selenium est un outil puissant pour les tests de navigateur sans interface utilisateur, permettant aux dรฉveloppeurs d'exรฉcuter des tests automatisรฉs sans avoir besoin d'une interface utilisateur visible. En exรฉcutant des tests en arriรจre-plan, Selenium peut รฉconomiser du temps et des ressources tout en aidant ร  identifier les problรจmes qui peuvent ne pas รชtre apparents dans un environnement de test traditionnel basรฉ sur l'interface utilisateur. Cela inclut les problรจmes liรฉs aux performances et aux problรจmes de mise en page qui ne peuvent devenir รฉvidents que dans un environnement sans tรชte. Cependant, il est important de garder ร  l'esprit les limites des tests sans tรชte et de les รฉquilibrer avec les mรฉthodes traditionnelles basรฉes sur l'interface utilisateur pour garantir une couverture complรจte des tests.

Exemples populaires de navigateurs sans tรชte

Il existe de nombreux navigateurs sans tรชte disponibles, chacun avec ses propres fonctionnalitรฉs et avantages, ce qui les rend adaptรฉs ร  diffรฉrents cas d'utilisation. Nous en discutons ci-dessous : -

PhantomJS

PhantomJS est un navigateur sans tรชte qui utilise WebKit comme moteur de rendu et prend en charge diverses normes Web telles que HTML5, CSS3 et JavaScript. Il peut รชtre utilisรฉ pour des tรขches de capture d'รฉcran et d'automatisation de pages. Il est open source et compatible avec plusieurs systรจmes d'exploitation.

Exemple de Selenium avec Headless PhantomJS dans Python

from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
# Set up PhantomJS options
phantomjs_options = webdriver.DesiredCapabilities.PHANTOMJS.copy()
phantomjs_options['phantomjs.page.settings.userAgent'] = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'
# Set up the PhantomJS driver
driver = webdriver.PhantomJS('/path/to/phantomjs', desired_capabilities=phantomjs_options)
# Perform actions using the driver
driver.get('https://www.example.com')
print(driver.title)
# Close the driver
driver.quit()

Chrome

Chrome est le navigateur le plus populaire de la planรจte et propose รฉgalement une fonctionnalitรฉ sans tรชte. Il peut รชtre utilisรฉ sur plusieurs plates-formes et prend en charge les langages et frameworks de programmation. Ses outils de dรฉbogage intรฉgrรฉs et sa documentation complรจte facilitent l'utilisation et le dรฉpannage de tout problรจme pouvant survenir lors des tests.

Exemple de Chrome sans tรชte avec Selenium in Python

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
# Set up Chrome options
chrome_options = Options()
chrome_options.add_argument('--headless')  # Run Chrome in headless mode
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--disable-dev-shm-usage')
# Set up the Chrome driver
driver = webdriver.Chrome('/path/to/chromedriver', options=chrome_options)
# Perform actions using the driver
driver.get('https://www.example.com')
print(driver.title)
# Close the driver
driver.quit()

Firefox

Firefox est un navigateur Web populaire qui peut รฉgalement รชtre utilisรฉ comme navigateur sans tรชte ร  des fins de test. L'un des avantages de l'utilisation Firefox en tant que navigateur sans tรชte, sa nature lรฉgรจre en fait une option polyvalente pour tester sur diffรฉrents systรจmes d'exploitation. De plus, avec sa documentation complรจte et le soutien de la communautรฉ, Firefox est un excellent choix pour ceux qui cherchent ร  expรฉrimenter la technologie de navigateur sans tรชte.

Exemple de sans tรชte Firefox au Selenium in Python

from selenium import webdriver
from selenium.webdriver.firefox.options import Options
# Set up Firefox options
firefox_options = Options()
firefox_options.add_argument('--headless')  # Run Firefox in headless mode
# Set up the Firefox driver
driver = webdriver.Firefox(options=firefox_options)
# Perform actions using the driver
driver.get('https://www.example.com')
print(driver.title)
# Close the driver
driver.quit()

Avantages des tests de navigateur sans tรชte

  • Exรฉcution des tests plus rapide
  • Tests rentables
  • Meilleure couverture des tests
  • Flexibilitรฉ dans l'exรฉcution des tests
  • Intรฉgration avec les pipelines CI / CD

Inconvรฉnients des tests de navigateur sans tรชte

  • Manque d'interface graphique
  • Difficultรฉs de dรฉbogage
  • Prise en charge limitรฉe du navigateur

PiloteUnitรฉHTML

HTML UnitDriver est le navigateur sans tรชte le plus lรฉger et le plus rapide ร  mettre en ล“uvre pour WebDriver. Il est basรฉ sur HtmlUnit. Il est connu comme Pilote de navigateur sans tรชte. C'est la mรชme chose que Chrome, IE ou FireFox pilote, mais il n'a pas d'interface graphique, donc on ne peut pas voir l'exรฉcution du test ร  l'รฉcran.

Fonctionnalitรฉs du pilote d'unitรฉ HTML

  • Prise en charge des protocoles HTTPS et HTTP
  • Prise en charge des rรฉponses HTML (cliquer sur des liens, soumettre des formulaires, parcourir le modรจle DOM du document HTML, etc.)
  • Prise en charge des cookies
  • Prise en charge du serveur proxy
  • Prise en charge de l'authentification de base et NTLM
  • Excellent Javascรฉnario soutenez
  • Prise en charge des mรฉthodes de soumission GET et POST
  • Possibilitรฉ de personnaliser les en-tรชtes de requรชte envoyรฉs au serveur
  • Possibilitรฉ de dรฉterminer si les rรฉponses dรฉfaillantes du serveur doivent gรฉnรฉrer des exceptions ou doivent รชtre renvoyรฉes sous forme de pages du type appropriรฉ

ร‰tapes pour utiliser le pilote HTMLUnit avec Selenium

ร‰tape 1) In Eclipse, copiez le code suivant. Ajoutez les fichiers de la bibliothรจque Selenium standard au projet. Aucun fichier jar supplรฉmentaire n'est requis.

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();			
         }		
}

ร‰tape 2) Exรฉcutez le code. Vous remarquerez qu'aucun navigateur n'est lancรฉ et les rรฉsultats sont affichรฉs dans la console.

ร‰tapes pour utiliser le pilote HTMLUnit avec Selenium

Avantages du pilote d'unitรฉ HTML :

  • Puisqu'il n'utilise aucune interface graphique pour tester, vos tests s'exรฉcuteront en arriรจre-plan sans aucune interruption visuelle.
  • Par rapport ร  toutes les autres instances, l'exรฉcution est plus rapide
  • Pour exรฉcuter vos tests via le pilote HtmlUnit, vous pouvez รฉgalement sรฉlectionner d'autres versions du navigateur
  • Il est indรฉpendant de la plate-forme et permet d'exรฉcuter plus facilement plusieurs tests simultanรฉment. Idรฉal pour test de charge.

Limitations:

  • Il ne peut pas รฉmuler d'autres navigateurs JavaComportement du script

PhantomJS

PhantomJS est un navigateur sans tรชte avec JavaAPI de script. Il s'agit d'une solution optimale pour les tests de sites Web sans tรชte, l'accรจs et la manipulation de pages Web et est livrรฉ avec l'API DOM standard.

Pour utiliser PhantomJS avec Seleniun, il faut utiliser GhostDriver. Pilote fantรดme est une implรฉmentation du protocole Webdriver Wire en JS simple pour PhantomJS.

La derniรจre version de PhatomJS a des services Pilote fantรดme et il n'est pas nรฉcessaire de l'installer sรฉparรฉment.

Voici comment fonctionne le systรจme-

PhantomJS

ร‰tapes ร  suivre Selenium avec PhatomJS

ร‰tape 1) Vous devez Eclipse au Selenium Installรฉ

ร‰tape 2) Tรฉlรฉcharger PhantomJS ici

ร‰tapes ร  suivre Selenium Avec PhatomJS

ร‰tape 3) Extrayez le dossier tรฉlรฉchargรฉ dans Program Files

ร‰tapes ร  suivre Selenium Avec PhatomJS

ร‰tape 4) Tรฉlรฉchargez le pilote PhantomJS depuis ici. Ajoutez le pot ร  votre projet

ร‰tapes ร  suivre Selenium Avec PhatomJS

ร‰tape 5) Collez le code suivant dans 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();			
           }		
}

ร‰tape 6) Exรฉcutez le code. Vous observerez que la sortie s'affiche dans la console et qu'aucun navigateur n'est lancรฉ.

REMARQUE: Lors de la premiรจre exรฉcution, en fonction de vos paramรจtres, vous pouvez recevoir un avertissement de sรฉcuritรฉ de Windows pour permettre d'exรฉcuter PhantomJS. Cliquez sur Autoriser l'accรจs.

ร‰tapes ร  suivre Selenium Avec PhatomJS

De nombreuses organisations utilisent Phantom.JS ร  diverses fins, par exemple :

  • Tests sans tรชte
  • Capture d'รฉcran
  • Automatisation des pages
  • Surveillance rรฉseau
  • Pour rendre des captures d'รฉcran du tableau de bord pour leurs utilisateurs
  • Pour exรฉcuter des tests unitaires en ligne de commande
  • Pour gรฉnรฉrer des manuels d'employรฉ du HTML au PDF
  • Combinรฉ avec QUnit pour la suite de tests

Rรฉsumรฉ

Pour tester rapidement l'application dans diffรฉrents navigateurs et sans aucune interruption visuelle, navigateur sans tรชte Tests est utilisรฉ. En raison de sa rapiditรฉ, de sa prรฉcision et de ses fonctionnalitรฉs faciles d'accรจs, le pilote d'unitรฉ HTML et PhantomJS gagnent en popularitรฉ pour les tests d'automatisation de navigateur sans tรชte. En suivant quelques รฉtapes simples, vous dรฉcouvrez avec quelle facilitรฉ ces outils peuvent รชtre intรฉgrรฉs ร  d'autres outils et exรฉcuter le code de test.

Rรฉsumez cet article avec :