HtmlUnit est un navigateur Web sans interface utilisateur écrit en Java . Il permet une manipulation de haut niveau des sites Web à partir d'autres codes Java, notamment le remplissage et l'envoi de formulaires et le clic sur des hyperliens . Il permet également d'accéder à la structure et aux détails des pages Web reçues . HtmlUnit émule certaines parties du comportement du navigateur, notamment les aspects de bas niveau de TCP/IP et HTTP . Une séquence telle que getPage(url), getLinkWith("Click here"), click()permet à un utilisateur de naviguer dans l'hypertexte et d'obtenir des pages Web qui incluent HTML , JavaScript , Ajax et des cookies . Ce navigateur sans interface utilisateur peut gérer la sécurité HTTPS, l'authentification HTTP de base, la redirection automatique des pages et d'autres en-têtes HTTP. Il permet au code de test Java d'examiner les pages renvoyées sous forme de texte, de DOM XML ou de collections de formulaires, de tableaux et de liens.
L’objectif est de simuler de vrais navigateurs, à savoir Chrome , Firefox et Edge .
L'utilisation la plus courante de HtmlUnit est l'automatisation des tests de pages Web, mais il peut parfois être utilisé pour le scraping Web ou le téléchargement de contenu de site Web.
Avantages
- Fournit une API de haut niveau, supprimant les détails de niveau inférieur à l'utilisateur.
- Comparé à d’autres implémentations de WebDriver, HtmlUnitDriver est le plus rapide à implémenter.
- Il peut être configuré pour simuler un navigateur spécifique.
Inconvénients
- La disposition et le rendu des éléments ne peuvent pas être testés.
- La prise en charge de JavaScript n'est pas complète, ce qui constitue l'un des domaines d'améliorations en cours.
Technologies utilisées
- DOM du W3C
- Connexion HTTP , en utilisant Apache HttpComponents
- JavaScript , en utilisant Rhino forké
- Analyse HTML , NekoHTML
- CSS : utilisation de l'analyseur CSS
- Prise en charge XPath , en utilisant Xalan
Bibliothèques utilisant HtmlUnit
- Pilote Web Selenium
- Cadre de test Spring MVC
- Tests de Google Web Toolkit
- Test Web
- Mouilleur