Navigateur headless
Un navigateur headless (anglais : headless browser, littĂ©ralement « navigateur sans tĂȘte »), est un navigateur web sans interface graphique.
Les navigateurs sans tĂȘte permettent d'automatiser les contrĂŽles d'une page web dans un environnement similaire Ă certains navigateurs populaires sur le marchĂ© en ligne de commande. Ils sont particuliĂšrement utiles pour les tests de pages web car ils interprĂštent correctement l'HTML, les feuilles de styles et lâexĂ©cution du JavaScript avec de l'AJAX ; fonctions qui ne sont pas toujours disponibles lors des tests[1] - [2]. En 2009, Google a commencĂ© Ă utiliser des navigateurs sans tĂȘte pour aider son moteur de recherche Ă effectuer l'indexation des sites utilisant de l'AJAX[3].
Cas d'utilisation des navigateurs sans tĂȘte
Les navigateurs sans tĂȘte peuvent ĂȘtre utilisĂ©s pour[4] - [5]:
- Automatiser des tests sur des applications web.
- Effectuer des captures d'Ă©crans sur des pages web.
- Lancer des tests automatisés pour des bibliothÚques JavaScript.
- Faire du Web scraping pour récupérer des données.
- Automatiser des interactions avec un site web.
Cas d'utilisation malveillant
Les navigateurs sans tĂȘte peuvent Ă©galement ĂȘtre utilisĂ©s pour :
Liste de navigateurs sans tĂȘte
Voici une liste de navigateurs proposant des fonctions headless :
- PhantomJS
- un navigateur sans tĂȘte utilisant le moteur de rendu WebKit pour le rendu de ses pages et JavaScriptCore pour l'exĂ©cution du javascript. PhantomJS Ă©tait initialement dĂ©veloppĂ© par Ariya Hidayate en 2010[9] - [10] - [11] - [12] - [13].
- HtmlUnit
- un navigateur sans tĂȘte Ă©crit en Java. HtmlUnit utilise Rhino pour le JavaScript[14] - [15].
- TrifleJS
- Une version du navigateur Internet Explorer scriptable utilisant le moteur de rendu Trident et le moteur JavaScript V8. TrifleJS utilise la mĂȘme API que PhantomJS et fonctionne en utilisant l'objet WebBrowser du framework .NET WebBrowser pour contrĂŽler la version d'IE installĂ©e sur la machine[5] - [16].
- Splash
- un navigateur sans tĂȘte avec une API HTTP, du scripting en Lua et un IDE IPython(Jupyter). Splash est Ă©crit en Python et utilise le moteur de rendu WebKit.
Navigateur sans tĂȘte Ă©mulĂ©
Ces navigateurs Ă©mulent l'environnement d'un navigateur. Alors qu'ils sont en mesure de soutenir des fonctions de navigation communes (parsing HTML, support des cookies, XHR, javascriptâŠ), ils ne peuvent pas effectuer de rendu et ont un support limitĂ© des Ă©vĂ©nements DOM. Ils s'exĂ©cutent gĂ©nĂ©ralement plus rapidement qu'un navigateur classique, mais sont incapables d'interprĂ©ter correctement de nombreux sites[17] - [18] - [19].
- Zombie.js. un environnement de navigation destiné à Node.js[20] - [21].
- ENVJS. un environnement de navigation Ă©crit en JavaScript pour le moteur Rhino[22].
Navigateurs scriptables
Voici une liste de navigateurs qui nĂ©cessitent encore une interface utilisateur mais ayant des API et qui sont destinĂ©s Ă ĂȘtre utilisĂ©s de maniĂšre similaire aux navigateurs sans tĂȘte.
- SlimerJS : un navigateur scriptable utilisant le moteur de rendu de Mozilla Gecko (moteur de rendu). SlimerJS utilise le mĂȘme langage que PhantomJS[23].
Voir aussi
- Web scraping
- Web testing
- Selenium
- Automatisation de test
Références
- "What is a headless browser?". arhg.net.
- "Quick Start". phantomjs.org.
- "Official Google Webmaster Central Blog: A proposal for making AJAX crawlable".
- (en) « PhantomJS - Scriptable Headless Browser », sur phantomjs.org (consulté le ).
- « triflejs.org »
- « Headless Browser Botnet Used in 150 hour DDoS attack », sur Business 2 Community (consulté le ).
- (en) « Headless Web Traffic Threatens Internet Economy », sur E-Commerce Times, (consulté le ).
- (en) « Headless browsers: legitimate software that enables attack | ITProPortal.com » (consulté le )
- "PhantomJS - PhantomJS". phantomjs.org.
- "FAQ". phantomjs.org.
- "Google Groups". google.com.
- "Commits · ariya/phantomjs · GitHub".
- "ariya/phantomjs".
- Mike Bowler.
- "Platform (Vaadin 7.3.4 API)". vaadin.com. 6 November 2014.
- (en) « Home », GitHub
- "assaf/zombie".
- (en) « Envjs.com - Ce site web est Ă vendre ! - Ressources et information concernant envjs Resources and Information. », sur envjs.com (consultĂ© le ).
- "JavaScriptMVC - EnvJS". javascriptmvc.com.
- (en) « Zombie », labnotes.org
- "Zombie". labnotes.org.
- (en) « Envjs.com - Ce site web est Ă vendre ! - Ressources et information concernant envjs Resources and Information. », sur envjs.com (consultĂ© le ).
- Laurent Jouanneau.
- (en) Cet article est partiellement ou en totalitĂ© issu de lâarticle de WikipĂ©dia en anglais intitulĂ© « Headless browser » (voir la liste des auteurs).