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.

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.
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 :
รtapes ร suivre Selenium avec PhantomJS
รtape 1) Vous devez Eclipse au Selenium installรฉ.
รtape 2) Tรฉlรฉcharger PhantomJS ici.
รtape 3) ExtracDรฉplacez le dossier tรฉlรฉchargรฉ dans Program Files.
รtape 4) Tรฉlรฉchargez le pilote PhantomJS depuis iciAjoutez le fichier JAR ร votre projet.
ร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.
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.






