Une plateforme low-code alliant la simplicité du no-code à la puissance du full-code 🚀
Commencez gratuitement
Puppeteer de Google : historique du développement, intégration de Chrome et sa place dans l'automatisation Web
12 mars 2025
10
min lire

Puppeteer de Google : historique du développement, intégration de Chrome et sa place dans l'automatisation Web

Georges Miloradovitch
Chercheur, rédacteur et intervieweur de cas d'utilisation
Table des matières

Marionnettiste est une Bibliothèque Node.js Développé par l'équipe Chrome DevTools de Google, Puppeteer offre un contrôle précis des navigateurs Chrome et Chromium. Il est largement utilisé pour les tâches d'automatisation web telles que les tests, le scraping et la génération de PDF ou de captures d'écran. Lancé en 2017, Puppeteer est rapide, fiable et s'intègre directement à l'environnement de développement. Protocole Chrome DevTools (CDP), ce qui en fait un choix populaire parmi les développeurs.

Caractéristiques Clés

  • Contrôle du navigateur: Automatisez la navigation et les interactions.
  • Manipulation DOM: Extraire et modifier le contenu Web.
  • Gestion du réseau:Intercepter et optimiser les requêtes.
  • Rendu des pages: Générer des PDF et des captures d'écran.

Pourquoi Choisir Marionnettiste Se démarque :

Marionnettiste

  • Plus rapide que Sélénium dans de nombreuses tâches (par exemple, scraping : 849 ms contre 1,009 XNUMX ms).
  • Prend en charge le mode sans tête pour une automatisation efficace et sans interface utilisateur.
  • Intégration avec WebDriver BiDi permet des tests multi-navigateurs (Chrome et Firefox).

Comparaisons:

Fonctionnalité Marionnettiste Sélénium Dramaturge Cyprès
Année de sortie 2017 2004 2020 2015
Programmation JavaScript Plusieurs langues Plusieurs langues JavaScript
Support du navigateur chrome, firefox Chrome, Firefox, et plus encore Chrome, Firefox, WebKit Chrome, Firefox, Electron
Vitesse Plus rapide Ralentissez Comparable Ralentissez
Idéal pour Scraping, automatisation Tests multi-navigateurs Tests avancés Tests de bout en bout

Le marionnettiste est idéal pour automatisation rapide et précise du navigateur, bien que des outils comme Selenium, Playwright et Cypress puissent être meilleurs pour une compatibilité plus large ou des besoins de tests spécialisés.

Il continue d'évoluer, avec des fonctionnalités telles que Tests basés sur l'IA et prise en charge étendue du navigateur, façonnant l’avenir de l’automatisation Web.

Tests Web modernes et automatisation avec Puppeteer

Comment Google a créé Puppeteer

En 2017, l'équipe Chrome DevTools de Google a lancé Puppeteer, une bibliothèque Node.js conçue pour l'automatisation des navigateurs. L'objectif était de créer un outil performant pour les tests automatisés des navigateurs, construit autour d'objectifs clairs.

Pourquoi Google a créé Puppeteer

L'équipe d'automatisation du navigateur Chrome a développé Puppeteer avec ces quatre objectifs principaux :

Objectif Description
Implémentation de référence Mettez en évidence les capacités des protocoles Chrome DevTools et WebDriver BiDi
Test multi-navigateurs Promouvoir les tests automatisés sur plusieurs navigateurs
Test des fonctionnalités Évaluer les nouvelles fonctionnalités du protocole DevTools et de WebDriver BiDi
Recherche en automatisation Résoudre les problèmes courants dans les tests automatisés des navigateurs

« Fournir une implémentation de référence qui met en évidence les capacités des protocoles Chrome DevTools et WebDriver BiDi. »

  • Équipe d'automatisation du navigateur Chrome

La performance était une priorité absolue, ce qui a permis de créer un outil avec une charge minimale. Puppeteer est donc particulièrement utile pour les tests à grande échelle et les tâches d'automatisation.

Principales mises à jour et modifications

Depuis son lancement, Puppeteer a franchi plusieurs étapes importantes. La bibliothèque compte désormais plus de 4.5 millions de téléchargements hebdomadaires pour la version principale et 6.6 millions pour la version principale, ce qui témoigne de sa forte adoption par les développeurs.

En 2019, Puppeteer a ajouté la prise en charge de Firefox. À partir de la version 23, il offre une prise en charge complète de Firefox grâce à WebDriver BiDi. Cependant, Firefox prévoit de supprimer progressivement la prise en charge de CDP, d'ici fin 2024.

Puppeteer reste un projet open source bénéficiant des contributions de développeurs du monde entier. Si l'équipe d'automatisation du navigateur Chrome de Google supervise la bibliothèque principale, la plupart des contributions proviennent de développeurs indépendants. Cette approche collaborative a renforcé Puppeteer comme un outil de référence pour l'automatisation du navigateur, favorisant ainsi la création d'une communauté diversifiée qui répond aux besoins concrets en matière d'automatisation.

Comment Puppeteer travaille avec Protocole Chrome DevTools

Protocole Chrome DevTools

Notions de base sur le protocole Chrome DevTools

Le protocole Chrome DevTools (CDP) est à la base de l'automatisation du navigateur de Puppeteer. Il permet aux développeurs de communiquer directement avec les navigateurs Chrome ou Chromium, débloquant ainsi de puissantes fonctionnalités.

Puppeteer est disponible en deux packages :

  • marionnettiste-core:Se concentre sur la gestion de la communication avec les API CDP.
  • marionnettiste: S'appuie sur puppeteer-core, ajoutant des outils de gestion de navigateur pour une interaction transparente.

Cette séparation garantit une automatisation sécurisée et efficace sans ralentir les performances. Grâce à CDP, Puppeteer offre un contrôle détaillé du navigateur.

Utilisation des fonctionnalités CDP par le marionnettiste

Puppeteer utilise CDP pour offrir aux développeurs un contrôle précis sur les actions du navigateur. Voici un aperçu de ses principales fonctionnalités :

Fonctionnalité Implantation Case Study
Interception de réseau Accès direct pour modifier les demandes et les réponses Tests d'API et réponses simulées
Manipulation DOM Utilise les API natives du navigateur Web scraping et extraction de contenu
Suivi de la performance Collecte les métriques du navigateur via CDP Optimisation des performances de chargement des pages
Couverture de code Instrumentation intégrée Mesurer l'efficacité des tests
Test d'accessibilité Accède à l'arborescence d'accessibilité du navigateur Assurer le respect des normes d'accessibilité

En février 2019, Jarrod Overson a démontré les capacités d'interception du trafic de CDP, montrant comment il peut modifier les corps de réponse en configurant les modèles d'URL et les types de ressources.

Avantages de l'utilisation du CDP

L'intégration directe de Puppeteer avec CDP apporte plusieurs avantages techniques :

  • Exécution plus rapide avec un contrôle précis des éléments internes du navigateur.
  • Permet des points d'arrêt et une analyse détaillée du réseau.
  • Offre un contrôle granulaire sur le comportement du navigateur et les opérations réseau.

Contrairement à Selenium, qui s'appuie sur le protocole WebDriver et ajoute une couche de communication supplémentaire, l'utilisation directe de CDP par Puppeteer permet des interactions plus rapides et plus précises avec le navigateur. Cela le rend idéal pour des tâches telles que les tests automatisés et l'analyse des performances.

Pour les développeurs, Puppeteer simplifie les flux de travail complexes tout en conservant l'accès aux fonctionnalités avancées du navigateur, consolidant ainsi sa place en tant que premier choix pour l'automatisation Web.

sbb-itb-23997f1

Principales fonctionnalités et applications

Puppeteer, étroitement intégré à Chrome, sert à un large éventail d'objectifs - du scraping de données aux tests et à la création de rapports visuels.

Collecte de données et Web Scraping

Puppeteer est très efficace pour extraire des données de sites web dynamiques. Sa connexion au protocole Chrome DevTools le rend parfaitement adapté à la gestion des applications web modernes.

Voici quelques conseils pour un meilleur scraping Web :

  • Utilisez des en-têtes d’agent utilisateur personnalisés pour éviter la détection de robots.
  • Ajoutez des délais entre les requêtes pour imiter le comportement humain.
  • Fiez-vous aux sélecteurs CSS pour un ciblage précis des éléments.
  • Inclure la gestion des erreurs pour garantir un fonctionnement fluide.

Sourojit Das, contributeur de la communauté, note que Puppeteer propose une API conviviale pour contrôler les navigateurs Chrome sans tête.

Mais Puppeteer ne se limite pas au scraping de données : il joue également un rôle clé dans les tests d'applications.

Test d'applications Web

Fonctionnant en mode sans interface, Puppeteer réduit l'utilisation des ressources, ce qui le rend idéal pour les tests. Voici ses fonctionnalités :

Type de test Compétences Avantages sociaux
Test de bout en bout Automatise les actions du navigateur et les interactions des utilisateurs Valide les flux de travail complets des utilisateurs
Test de l'interface utilisateur Compare les captures d'écran et vérifie les éléments Maintient la cohérence visuelle
Test de formulaire Remplit et soumet les formulaires automatiquement Permet de gagner du temps sur les tests manuels
Test de connexion Tests d'identification et gestion des sessions Assure le fonctionnement des fonctionnalités de sécurité

Ces fonctionnalités font également de Puppeteer un outil précieux pour surveiller et améliorer les performances du site Web.

Test de vitesse du site Web

Puppeteer fournit des outils pour évaluer et optimiser les performances des sites web. Grâce à ses API d'interception réseau, les développeurs peuvent diffuser des fichiers statiques localement pour améliorer la vitesse et la fiabilité.

Les indicateurs de performance clés que Puppeteer peut suivre incluent :

  • Temps de chargement des pages
  • Vitesses de chargement des ressources
  • Temps d'exécution JavaScript
  • Modèles de requêtes réseau
  • Utilisation de la mémoire

Création de PDF et de captures d'écran

Puppeteer simplifie la création de documentation visuelle avec ses outils PDF et capture d'écran, ce qui en fait un choix populaire pour :

Génération PDF :

Idéal pour des tâches telles que :

  • Automatisation de la création de rapports
  • Archivage de la documentation
  • Produire du contenu Web prêt à imprimer

Création de capture d'écran :

Utile pour capturer :

  • Vues pleine page
  • Éléments spécifiques
  • Émulations d'appareils mobiles
  • Configurations de fenêtre d'affichage personnalisées

Sa capacité à fonctionner efficacement en mode headless fait de Puppeteer une solution de référence pour les tâches automatisées à volume élevé. Depuis son lancement en 2017, il a gagné en popularité auprès des développeurs et des professionnels de l'assurance qualité, offrant des performances supérieures à celles des outils d'automatisation plus anciens.

Marionnettiste vs outils alternatifs

Décomposons comment Puppeteer se compare aux autres outils pour vous aider à choisir celui qui convient le mieux à votre projet.

Marionnettiste et Sélénium Différences

Sélénium

Puppeteer, basé sur le protocole Chrome DevTools, est généralement plus rapide et plus simple d'utilisation que Selenium. Par exemple, lors d'un benchmark, Puppeteer a réalisé une tâche de scraping en 849.46 ms, contre 1,008.08 XNUMX ms pour Selenium. Cependant, Selenium prend en charge un plus large éventail de navigateurs et de langages de programmation, ce qui en fait un choix plus polyvalent pour les tests multi-navigateurs.

Fonctionnalité Marionnettiste Sélénium
Date de sortie 2017 2004
Langue JavaScript Plusieurs (par exemple, Python, Java, C#, etc.)
Navigateurs Chrome/Chromium, Firefox Chrome, Firefox, Safari, Edge, IE
Test mobile Non Oui
Courbe d'apprentissage Coût en adjuvantation plus élevé. Meilleure performance du béton
Vitesse d'exécution Plus rapide Ralentissez

Bien que Puppeteer excelle en termes de vitesse et de simplicité, la compatibilité plus large des navigateurs et la prise en charge multilingue de Selenium en font une solution de référence pour divers environnements de test.

Marionnettiste et Dramaturge Comparaison

Dramaturge

Playwright offre des fonctionnalités supplémentaires par rapport à Puppeteer, comme la prise en charge de davantage de navigateurs (Chromium, Firefox et WebKit) et de plusieurs langages de programmation comme JavaScript, TypeScript, Python, .NET, Java et C#. Bien que Puppeteer soit environ 30 % plus rapide sur les scripts courts, Playwright intègre l'exécution de tests parallèles, des fonctionnalités avancées d'attente automatique et des outils qui simplifient la création de tests.

Capability Marionnettiste Dramaturge
Tests en parallèle Nécessite une configuration supplémentaire Prise en charge intégrée
Indicateurs de performance Détaillé via Chrome DevTools Disponible via le traçage
Attente automatique Limité Déclaration en ligne
Taille de la communauté Plus grand et bien établi grandir

Puppeteer est plus rapide pour les tâches plus petites, mais les fonctionnalités supplémentaires de Playwright et la prise en charge plus large du navigateur peuvent en faire une meilleure solution pour des besoins de test plus complexes.

Marionnettiste et Cyprès Différences

CyprèsPuppeteer est idéal pour les tâches d'automatisation web générales, tandis que Cypress excelle dans les tests de bout en bout. Cypress propose des relances automatiques et des outils de débogage performants, mais ne prend pas en charge les onglets de navigateur multiples, une fonctionnalité que Puppeteer maîtrise bien. Puppeteer est également plus rapide et entièrement gratuit, tandis que Cypress propose des formules gratuites et payantes.

Les principales différences incluent :

  • Exécution des tests: Puppeteer est plus rapide, mais Cypress dispose d'un exécuteur de tests intégré.
  • Support du navigateur: Puppeteer se concentre sur les navigateurs basés sur Chromium, tandis que Cypress prend en charge Chrome, Firefox et Electron.
  • Prix: Puppeteer est gratuit, tandis que Cypress inclut des options payantes pour des fonctionnalités avancées.
Case Study Meilleur choix Raison
Web Scraping Marionnettiste Exécution plus rapide et meilleur contrôle
Test de bout en bout Cyprès Testeur intégré et outils de débogage
Test de performance Marionnettiste Métriques détaillées via Chrome DevTools
Tests multi-navigateurs Cyprès Prise en charge native de plusieurs navigateurs

Chaque outil a ses atouts. Puppeteer se distingue par sa rapidité et son intégration à Chrome, tandis que des alternatives comme Selenium, Playwright et Cypress offrent compatibilité et fonctionnalités spécialisées.

Quelle est la prochaine étape pour Puppeteer

Influence sur les outils d'automatisation émergents

Puppeteer gagne en popularité grâce à l'adoption de WebDriver BiDi, un protocole multi-navigateurs combinant WebDriver Classic et le protocole Chrome DevTools. Avec plus de 208,000 73,000 utilisateurs et XNUMX XNUMX étoiles GitHub, Puppeteer est devenu un outil incontournable pour l'automatisation des navigateurs. Cette forte présence communautaire façonne les nouveaux frameworks d'automatisation, en mettant l'accent sur la rapidité et l'amélioration de l'expérience développeur. Ces avancées ouvrent également la voie à de futures intégrations avec les technologies d'IA et d'apprentissage automatique (ML).

Potentiel d'intégration de l'IA et du ML

L'IA et le ML devraient étendre les fonctionnalités de Puppeteer dans plusieurs domaines :

Région Approche actuelle Potentiel futur
Stratégies de test Création manuelle de tests Tests adaptatifs pilotés par l'IA
Test visuel Comparaison de captures d'écran de base Détection de régression visuelle basée sur le ML
Test d'accessibilité Vérifications ARIA standard Validation de la conformité améliorée par l'IA
Analyse de performance Collecte manuelle des données métriques Suggestions d'optimisation automatisées

L'équipe de développement travaille activement à l'amélioration des fonctionnalités du gestionnaire ARIA, jetant ainsi les bases des tests d'accessibilité basés sur l'IA. Parallèlement à ces avancées en matière d'IA, Puppeteer élargit sa prise en charge des navigateurs afin d'accroître sa flexibilité dans les tâches d'automatisation.

Prise en charge avancée de plusieurs navigateurs

Puppeteer progresse également en termes de compatibilité multi-navigateurs. Depuis mars 2025, il est compatible avec Chrome, Chromium et Firefox. Parmi les principales mises à jour :

  • Prise en charge stable de Firefox: Puppeteer est passé d'un outil uniquement Chrome à une solution multi-navigateurs plus flexible.
  • Intégration WebDriver BiDi: Capacités d'automatisation améliorées pour Chrome et Firefox grâce à la prise en charge améliorée de WebDriver BiDi.
  • Normalisation des API:L'équipe catégorise les API non prises en charge - qu'elles soient liées au CDP, aux normes en attente ou nécessitant une implémentation - pour rationaliser les fonctionnalités multi-navigateurs.

Les retours des utilisateurs guident les efforts visant à combler les lacunes de WebDriver BiDi. Les prochaines améliorations visent à améliorer les fonctionnalités de géolocalisation, l'exécution des scripts de travail et les tests d'accessibilité sur tous les navigateurs pris en charge. Ces mises à jour permettent à Puppeteer d'évoluer pour répondre aux divers besoins de l'automatisation web.

Grâce à ces développements, Puppeteer passe d'un outil axé sur Chrome à une plate-forme d'automatisation flexible et multi-navigateurs tout en conservant ses performances et sa facilité d'utilisation caractéristiques.

Conclusion : l'impact de Puppeteer sur l'automatisation Web

Depuis sa sortie en 2017, Puppeteer a établi de nouvelles références en matière de contrôle des navigateurs et d'efficacité des tests, transformant ainsi le paysage de l'automatisation web. Grâce au protocole Chrome DevTools, il offre des performances élevées, notamment dans les environnements headless.

L'influence de Puppeteer va au-delà de ses capacités techniques. Son API intuitive a rendu le contrôle précis du navigateur plus accessible, inspirant le développement de nouveaux outils d'automatisation.

Les avis d'experts soulignent le rôle de Puppeteer dans la transformation de l'automatisation Web :

« Chez Mozilla, nous considérons cette stratégie de standardisation des protocoles afin de supprimer les barrières à l'entrée, de permettre à un écosystème diversifié d'implémentations interopérables de prospérer et de permettre aux utilisateurs de choisir celles qui conviennent le mieux à leurs besoins comme un élément clé de notre manifeste et de notre vision du Web. »

Voici quelques domaines dans lesquels Puppeteer a eu un impact évident :

Région Contribution Perspectives d'avenir
Standardisation du protocole A contribué à l'adoption de WebDriver BiDi pour la compatibilité entre navigateurs Une plus grande interopérabilité pour les outils d'automatisation
Efficacité des ressources Les tests sans tête sont devenus une pratique courante dans l'industrie Des flux de travail plus rapides et plus efficaces
Intégration AI Prise en charge d'applications avancées dans les domaines de la santé et des interactions avec les patients Utilisation plus large de l'IA dans l'automatisation du Web

La croissance de Puppeteer, passant d'un outil dédié à Chrome à la compatibilité avec Firefox via WebDriver BiDi, illustre son évolution. Associé à son rôle dans l'automatisation basée sur l'IA, Puppeteer est devenu un acteur clé de l'automatisation web moderne.

Ses performances constantes, sa facilité d’utilisation et sa conception basée sur des protocoles continuent d’influencer le développement des outils et des pratiques d’automatisation Web.

Blogs connexes

Cas d'utilisation

Soutenu par