Article de reference

Navigateur sans tête

Un navigateur sans tête est un navigateur Web sans interface utilisateur graphique . Les navigateurs headless permettent de contrôler automatiquement une page Web dans un enviro...

Un navigateur sans tête est un navigateur Web sans interface utilisateur graphique .

Les navigateurs headless permettent de contrôler automatiquement une page Web dans un environnement similaire aux navigateurs Web courants, mais ils sont exécutés via une interface de ligne de commande ou à l'aide d'une communication réseau. Ils sont particulièrement utiles pour tester les pages Web car ils sont capables de restituer et de comprendre le HTML de la même manière qu'un navigateur le ferait, y compris les éléments de style tels que la mise en page, la couleur, la sélection de polices et l'exécution de JavaScript et d'Ajax qui ne sont généralement pas disponibles lors de l'utilisation d'autres méthodes de test.

Depuis la version 59 de Google Chrome et la version 56 de Firefox , il existe un support natif pour le contrôle à distance du navigateur. Cela a rendu obsolètes les efforts antérieurs, notamment PhantomJS .

Cas d'utilisation

Les principaux cas d’utilisation des navigateurs headless sont :

Autres utilisations

Les navigateurs sans tête sont également utiles pour le scraping Web . Google a déclaré en 2009 que l'utilisation d'un navigateur sans tête pourrait aider son moteur de recherche à indexer le contenu des sites Web qui utilisent Ajax.

Les navigateurs sans tête ont également été utilisés à mauvais escient de diverses manières :

Cependant, une étude sur le trafic des navigateurs en 2018 n'a révélé aucune préférence des acteurs malveillants pour les navigateurs headless. Rien n'indique que les navigateurs headless soient utilisés plus fréquemment que les navigateurs non headless à des fins malveillantes, comme les attaques DDoS, les injections SQL ou les attaques de script intersite .

Usage

Comme plusieurs navigateurs majeurs prennent en charge nativement le mode headless via des API , certains logiciels existent pour effectuer l'automatisation du navigateur via une interface unifiée. Il s'agit notamment de :

Automatisation des tests

Certains logiciels et frameworks d'automatisation des tests incluent des navigateurs sans tête dans le cadre de leurs appareils de test.

  • Capybara utilise la navigation sans tête, soit via WebKit ou Headless Chrome pour imiter le comportement de l'utilisateur dans ses protocoles de test.
  • Jasmine utilise Selenium par défaut, mais peut utiliser WebKit ou Headless Chrome pour exécuter des tests de navigateur.
  • Cypress , un framework de test frontend
  • QF-Test , un outil logiciel pour les tests automatisés de programmes via l'interface utilisateur graphique où un navigateur sans tête peut également être utilisé pour les tests.

Alternatives

Une autre approche consiste à utiliser des logiciels qui fournissent des API de navigateur. Par exemple, Deno fournit des API de navigateur dans le cadre de sa conception. Pour Node.js , jsdom est le fournisseur le plus complet. Bien que la plupart soient capables de prendre en charge les fonctionnalités courantes des navigateurs (analyse HTML, cookies , XHR , certains JavaScript, etc.), ils ne restituent pas le DOM et ont une prise en charge limitée des événements DOM . Ils sont généralement plus rapides que les navigateurs complets, mais ne sont pas en mesure d'interpréter correctement de nombreux sites Web populaires.

Un autre est HtmlUnit , un navigateur headless écrit en Java. HtmlUnit utilise le moteur Rhino pour fournir un support JavaScript et Ajax ainsi qu'une capacité de rendu partiel.

Liste des navigateurs headless

Il s’agit de divers logiciels qui fournissent des API de navigateur sans tête.

  • Splash est un navigateur Web headless écrit en Python à l'aide du moteur de mise en page WebKit via Qt . Il dispose d'une API HTTP, d'un support de script Lua et d'un IDE intégré basé sur IPython (Jupyter). Le développement a commencé chez ScrapingHub en 2013 ; il est partiellement financé par la DARPA .
  • Zombie.js est un environnement de navigateur simulé pour Node.js. ]
  • SimpleBrowser est un navigateur Web sans tête écrit en C# prenant en charge .NET Standard 2.0
  • DotNetBrowser est une bibliothèque propriétaire basée sur .NET Chromium qui fournit le mode de rendu hors écran et peut être utilisée sans intégrer ni afficher de fenêtres.

Un autre effort antérieur notable était envjs en 2008 de John Resig , qui était un environnement de navigateur simulé écrit en JavaScript pour le moteur Rhino .

Plus d articles de Worldlex Wiki

Revenez a l index pour explorer davantage de pages sur l histoire, la science, la culture, la geographie et la societe en francais.

Explorer l index