Pilote HTMLUnit dans SeleniumTutoriel sur les navigateurs sans interface graphique

⚡ Résumé intelligent

HtmlUnitDriver est l'implémentation sans interface graphique la plus rapide de Selenium WebDriver, tandis que PhantomJS, autrefois un navigateur sans interface graphique populaire basé sur GhostDriver, est obsolète depuis 2018 et désormais remplacé par Chrome sans interface graphique. Firefoxet Playwright pour les flux de travail d'automatisation modernes.

  • 🤖 Concept sans tête : Courir Selenium Des tests sans interface graphique visible pour économiser du processeur, de la mémoire et du temps d'exécution dans les pipelines d'intégration continue.
  • ⚙️ Force du pilote HtmlUnitDriver : Pure Java Moteur sans binaire externe, idéal pour des vérifications HTTP rapides et des interactions rapides avec les formulaires.
  • 🚀 Dépréciation de PhantomJS : Le développement de PhantomJS s'est arrêté en 2018 ; les équipes devraient migrer vers Chrome sans interface graphique. Firefox, ou dramaturge.
  • ✅ Alternatives modernes : Chrome sans tête et Firefox offre précise JavaRendu de scripts, protocole DevTools et débogage amélioré.
  • 🧪 Meilleurs cas d'utilisation : Tests de fumée, suites de régression, tests de charge et tâches d'intégration continue sur des exécuteurs Linux sans interface graphique.

Pilote HTMLUnit dans Selenium

Un navigateur sans interface graphique est un navigateur web dépourvu d'interface utilisateur graphique. Il peut fonctionner en arrière-plan sans affichage visuel.tracIl offre une méthode efficace pour tester les applications web tout en économisant du temps et des ressources. Dans cet article, nous explorons ce qu'est un navigateur sans interface graphique, quand utiliser les tests de navigateur sans interface graphique et comment les réaliser. Selenium HtmlUnitDriver et PhantomJS.

Qu'est-ce qu'un navigateur sans tête ?

Un navigateur sans interface graphique est un navigateur web sans interface utilisateur graphiqueCe programme se comporte comme un navigateur classique, mais il n'affiche aucune fenêtre d'interface graphique pendant son exécution.

Voici quelques exemples de pilotes de navigateur sans interface graphique :

  • Unité HTML
  • Ghost
  • PhantomJS (obsolète)
  • ZombieJS
  • Watir-pilote Web
  • Chrome sans tête
  • Sans tête Firefox

Quand utiliser les tests de navigateur sans tête ?

À l'ère du numérique, les applications web sont conçues pour être compatibles avec une vaste gamme d'appareils et de plateformes. Cela représente un défi pour les développeurs, qui doivent garantir le bon fonctionnement de leurs applications dans différents environnements. Les tests en mode « headless browser testing » constituent une solution idéale, car ils permettent aux développeurs de valider leurs applications web sans interface graphique. Grâce à ces tests, les développeurs peuvent rapidement tester des applications web complexes comportant de nombreux composants et dépendances, ce qui accélère le développement, réduit le nombre de bogues et améliore la satisfaction des utilisateurs.

Test du navigateur sans tête avec Selenium

Selenium est un outil puissant pour les tests de navigateur sans interface graphique, permettant aux développeurs d'exécuter des tests automatisés sans interface utilisateur visible. En exécutant les tests en arrière-plan, Selenium permet de gagner du temps et des ressources tout en aidantping Il est important d'identifier les problèmes qui peuvent passer inaperçus dans un environnement de test d'interface utilisateur classique. Cela inclut les problèmes de performance et de mise en page qui ne deviennent apparents que dans un environnement sans interface graphique. Toutefois, il est essentiel d'équilibrer les tests sans interface graphique avec les tests d'interface utilisateur classiques afin de garantir une couverture complète.

Exemples populaires de navigateurs sans tête

Il existe de nombreux navigateurs sans interface graphique, chacun présentant ses propres caractéristiques et avantages, ce qui les rend adaptés à différents cas d'utilisation. Nous les abordons ci-dessous.

PhantomJS

Avis de dépréciation : Le développement actif de PhantomJS a cessé en 2018 et le projet n'est plus maintenu. Les nouveaux projets devraient privilégier Chrome sans interface graphique. Firefox, Dramaturge pour l'automatisation moderne sans interface graphique. L'exemple PhantomJS ci-dessous est fourni à titre indicatif uniquement.

PhantomJS est un navigateur sans interface graphique qui utilise WebKit comme moteur de rendu et prend en charge les standards web tels que HTML5, CSS3 et JavaCe script permet la capture d'écran et l'automatisation de pages web. Il est open source et compatible avec de nombreux 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 au monde et propose également un mode sans interface graphique. Il est compatible avec de nombreuses plateformes et prend en charge les langages de programmation et les frameworks les plus courants. Ses outils de débogage intégrés et sa documentation complète facilitent son utilisation et la résolution des problèmes 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 interface graphique pour les tests. L'un des avantages de son utilisation Firefox En tant que navigateur sans interface graphique, son principal atout réside dans sa légèreté, ce qui en fait une option polyvalente pour les tests sur différents systèmes d'exploitation. Associée à une documentation complète et au soutien de sa communauté, Firefox est un excellent choix pour les équipes qui expérimentent l'automatisation des navigateurs sans interface graphique.

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 simplifiée avec les pipelines CI/CD

Inconvénients des tests de navigateur sans tête

  • Absence d'interface graphique visible pour l'inspection manuelle
  • Le débogage peut s'avérer plus difficile sans écran.
  • Couverture comportementale limitée spécifique au navigateur

HtmlUnitDriver

HtmlUnitDriver est l'implémentation la plus légère et la plus rapide d'un navigateur sans interface graphique pour Selenium WebDriver. Il est basé sur HtmlUnit et est également connu sous le nom de Pilote de navigateur sans têteIl se comporte comme Chrome, IE ou Firefox Le pilote HtmlUnitDriver est maintenu et distribué via [nom du réseau de distribution manquant]. Cependant, il ne possède pas d'interface graphique, l'exécution des tests n'est donc pas visible à l'écran. HtmlUnitDriver est toujours maintenu et distribué via [nom du réseau de distribution manquant]. org.seleniumhq.selenium:htmlunit3-driver Artefact Maven.

Caractéristiques de HtmlUnitDriver :

  • 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
  • Solide 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 contrôler si les réponses erronées du serveur doivent générer des exceptions ou être renvoyées sous forme de pages du type approprié.

Étapes d'utilisation de HtmlUnitDriver avec Selenium

Étape 1) In EclipseCopiez le code suivant. Ajoutez la norme Selenium Les fichiers de bibliothèque sont ajoutés 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 HtmlUnit 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 constaterez qu'aucun navigateur n'est lancé et que les résultats s'affichent dans la console.

Étapes pour utiliser HtmlUnitDriver avec Selenium

Avantages de HtmlUnitDriver

  • Comme il n'utilise aucune interface graphique, les tests s'exécutent en arrière-plan sans interruption visuelle.
  • Comparée aux autres instances de pilote, l'exécution est plus rapide.
  • Vous pouvez également émuler différentes versions de navigateur lors de l'exécution de tests via HtmlUnitDriver.
  • Il est indépendant de toute plateforme et permet d'exécuter facilement plusieurs tests simultanément. Il est idéal pour test de charge.

Limites :

  • Il ne peut pas entièrement imiter JavaComportement des scripts de chaque véritable moteur de navigateur

PhantomJS

Rappel: PhantomJS est obsolète et n'est plus maintenu. Pour les nouveaux développements sans interface graphique, utilisez Selenium avec Chrome sans interface graphique ou Firefox, ou passez à la section Dramaturge. La section ci-dessous est conservée à titre de référence uniquement.

PhantomJS est un navigateur sans interface graphique doté d'une interface graphique. JavaAPI Script. Elle était historiquement utilisée pour les tests de sites web sans interface graphique, l'accès et la manipulation des pages web, et est fournie avec l'API DOM standard.

Pour utiliser PhantomJS avec Selenium, vous avez besoin de GhostDriver. Pilote fantôme est une implémentation du protocole WebDriver Wire en langage naturel JavaScript pour PhantomJS.

Les versions ultérieures de PhantomJS des services GhostDriver, donc Il n'est pas nécessaire de l'installer séparément.

Voici comment fonctionne le système :

PhantomJS

Étapes à suivre Selenium avec PhantomJS

Étape 1) Vous devez Eclipse au Selenium installé.

Étape 2) Télécharger PhantomJS ici.

Étapes à suivre Selenium Avec PhantomJS

Étape 3) ExtracDéplacez le dossier téléchargé dans Program Files.

Étapes à suivre Selenium Avec PhantomJS

Étape 4) Téléchargez le pilote PhantomJS depuis iciAjoutez le fichier JAR à votre projet.

Étapes à suivre Selenium Avec PhantomJS

É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. Le résultat s'affichera dans la console et aucun navigateur ne sera ouvert.

NOTE: Lors de la première exécution, en fonction de vos paramètres, vous pourriez voir un avertissement de sécurité. Windows pour permettre à PhantomJS de s'exécuter. Cliquez Permettre l'accès.

Étapes à suivre Selenium Avec PhantomJS

De nombreuses organisations ont historiquement utilisé PhantomJS pour des tâches telles que :

  • Tests sans interface graphique
  • Capture d'écran
  • Automatisation des pages
  • Surveillance du réseau
  • Création de captures d'écran du tableau de bord pour leurs utilisateurs
  • Exécution des tests unitaires en ligne de commande
  • Générer des manuels d'employés à partir de HTML vers PDF
  • Combinaison avec QUnit pour la suite de tests

Pour les nouveaux projets, remplacez ces cas d'utilisation de PhantomJS par Chrome sans interface graphique. Firefox, ou Playwright, qui reçoivent des mises à jour continues en matière de sécurité et de rendu.

FAQ

Un navigateur sans interface graphique est un navigateur web qui fonctionne sans interface utilisateur graphique. Selenium, les pilotes sans interface graphique tels que HtmlUnitDriver, Chrome sans interface graphique et les pilotes sans interface graphique Firefox Exécuter les tests en arrière-plan permet d'économiser des ressources et d'accélérer les suites d'automatisation.

Non. Le développement de PhantomJS a été suspendu en 2018 et le projet n'est plus maintenu. Selenium PhantomJSDriver a également été supprimé des versions récentes. Les nouveaux tests doivent utiliser Chrome sans interface graphique. Firefoxou plutôt dramaturge.

HtmlUnitDriver est un pur Java moteur très rapide, ne nécessitant aucun binaire de navigateur, mais ses fonctionnalités sont limitées. JavaFidélité des scripts. Chrome sans interface graphique utilise le véritable moteur Blink, ce qui lui permet d'afficher des contenus modernes. JavaLes sites comportant de nombreux scripts affichent une précision optimale, au prix d'une consommation de ressources plus élevée.

Utilisez le Selenium avec Chrome sans interface graphique ou sans interface graphique Firefox Pour des tests précis au niveau du navigateur, utilisez Playwright pour une automatisation parallèle multi-navigateurs. Ces outils bénéficient de mises à jour de sécurité régulières et prennent en charge des fonctionnalités modernes telles que le protocole DevTools et l'interception réseau.

Les outils basés sur l'IA peuvent réparer automatiquement les localisateurs lorsque le DOM change, prédire les tests instables et analyser les captures d'écran pour détecter les régressions visuelles. Cela réduit les exécutions headless défaillantes dans l'intégration continue et aide les équipes d'assurance qualité à maintenir une stabilité optimale. Selenium Des pipelines nécessitant moins d'intervention manuelle.

Oui. Les assistants IA modernes peuvent générer Selenium Scripts WebDriver dans Java, Python, JavaScript à partir d'étapes en langage clair, y compris des options sans interface graphique pour Chrome ou FirefoxVérifiez toujours le code généré pour vous assurer que les attentes, les sélecteurs et la sécurité sont corrects avant de l'exécuter dans un environnement d'intégration continue.

Résumez cet article avec :