Aller au contenu

Puppeteer

Ce qu'est Puppeteer, comment il réalise des captures d'écran et sa comparaison avec Playwright pour l'automatisation du navigateur.

Puppeteer est une bibliothèque Node.js open source, maintenue par l'équipe Chrome de Google. Elle pilote Chrome ou Chromium, et aussi Firefox, via le Chrome DevTools Protocol ou WebDriver BiDi. Elle fonctionne sans interface par défaut, si bien que les pages se chargent et se rendent sans fenêtre visible.

Un script Puppeteer lance un navigateur, ouvre des pages et agit comme un utilisateur : il navigue, clique, saisit du texte et attend du contenu. La bibliothèque sert couramment aux captures d'écran, à la génération de PDF, au scraping, aux mesures de performance et aux tests automatisés d'applications web basées sur Chrome.

Ce que Puppeteer permet de faire

  • Lancer Chrome, Chromium ou Firefox, ou se connecter à un navigateur déjà ouvert.
  • Définir la fenêtre d'affichage, l'user agent, la géolocalisation et les conditions réseau.
  • Cliquer, saisir du texte, soumettre des formulaires et attendre des sélecteurs ou une absence d'activité réseau.
  • Intercepter les requêtes pour bloquer les publicités, les images ou les traceurs.
  • Enregistrer des captures avec page.screenshot() et des PDF avec page.pdf().

Puppeteer pour les captures d'écran

page.screenshot() enregistre une sortie en PNG, JPEG ou WebP. L'option fullPage capture tout le document défilant, clip capture un rectangle, et un descripteur d'élément capture un seul élément. page.setViewport() définit la largeur, la hauteur et deviceScaleFactor, qui détermine si la sortie est en résolution 1x ou 2x.

page.pdf() diffère d'une capture d'écran. Il utilise la mise en page d'impression du navigateur et le CSS d'impression, si bien qu'il peut paginer la page ou masquer des éléments, alors que page.screenshot() enregistre l'écran tel qu'il est rendu.

Puppeteer ou Playwright

Puppeteer est une bibliothèque JavaScript centrée sur Chrome. Playwright prend en charge Chromium, Firefox et WebKit, propose des liaisons pour JavaScript, Python, Java et .NET, et inclut un lanceur de tests. Puppeteer convient aux projets Node.js qui n'ont besoin que de Chrome ; Playwright convient aux équipes qui ont besoin du moteur WebKit de Safari ou d'un autre langage.

Erreurs courantes

  • Prendre la capture juste après la navigation, avant le chargement des polices et des images.
  • Attendre que page.pdf() ressemble à l'écran.
  • Lancer trop d'instances de navigateur en même temps et manquer de mémoire.
  • Oublier de fermer le navigateur, ce qui laisse des processus actifs.

Vous refaites les mêmes captures encore et encore ?

Website Capture de Temposhot charge une liste d'URL dans des navigateurs locaux gérés et enregistre une image par URL, avec la zone Viewport ou Full page. Consultez l'automatisation des captures de sites web.

Questions fréquentes

Puppeteer ne fonctionne-t-il que avec Chrome ?

Chrome est la cible principale. Puppeteer prend aussi en charge Firefox via WebDriver BiDi.

Puppeteer peut-il capturer des images Retina ?

Oui. Réglez deviceScaleFactor sur 2 dans page.setViewport() pour obtenir deux fois la largeur et la hauteur en pixels.

Puppeteer exige-t-il de programmer ?

Oui. C'est une bibliothèque utilisée depuis du code JavaScript ou TypeScript exécuté avec Node.js.

Sources

Ressources associées

Vous prenez toujours les mêmes captures d'écran ?

Temposhot capture un écran, une fenêtre ou une zone à intervalles programmés et exporte l'ensemble en PDF, en images, en ZIP ou en MP4. Les outils gratuits du navigateur ne permettent de traiter qu'une image à la fois.

Ressources associées

Termes associés

Tous les termes du glossaire