Abonnements
PRODUIT
SOLUTIONS
par cas d'utilisation
AI Gestion du leadFacturationRéseaux SociauxGestion de projetGestion des donnéespar industrie
en savoir plus
BlogGabaritsVidéosYoutubeRESSOURCES
COMMUNAUTÉS ET RÉSEAUX SOCIAUX
PARTENAIRES
Marionnettiste vous permet d'automatiser Chrome or Chromium navigateurs et choisir entre sans tête or tête pleine Le mode peut avoir un impact significatif sur les performances et le débogage. Voici un bref aperçu :
Fonctionnalité | Mode sans tête | Mode Headful |
---|---|---|
Interface visuelle | Pas d'interface graphique | Interface graphique complète |
L'utilisation des ressources | Coût en adjuvantation plus élevé. | Meilleure performance du béton |
Vitesse d'exécution | Plus rapide | Standard |
Empreinte mémoire | Plus petit | Agrandir |
Facilité de débogage | Basé sur la console | Retour visuel |
Nouveau mode sans tête combine les performances du headless avec des outils de débogage améliorés, ce qui en fait un choix équilibré pour de nombreux flux de travail.
Choisissez:
Ce guide explique comment configurer chaque mode, leurs avantages et quand les utiliser.
Le mode headless standard est la configuration par défaut de Puppeteer, qui exécute Chrome ou Chromium sans son interface graphique (GUI). En ignorant l'interface graphique, Puppeteer utilise moins de mémoire, traite les pages plus rapidement et réduit la charge du processeur.
Fonctionnalités clés
Le mode headless standard prend en charge une large gamme d'opérations de navigateur, notamment :
Fonctionnalité | Ce qu'il fait |
---|---|
Simulation utilisateur | Gère les clics, les saisies de formulaires et la navigation |
Manipulation de contenu | Injecte JavaScript, modifie le DOM |
Génération d'actifs | Capture des captures d'écran, crée des PDF |
Surveillance réseau | Suivi des demandes et des réponses |
Automatisation des pages | Exécute des scripts, extrait du contenu |
Comment l'utiliser
Vous pouvez lancer le mode sans tête avec le code suivant :
const browser = await puppeteer.launch(); // Default headless
// OR
const browser = await puppeteer.launch({ headless: true }); // Explicit headless
Pourquoi c'est utile
Le mode sans tête est idéal pour des tâches telles que le web scraping, les tests automatisés et la création de captures d'écran ou de PDF. Par exemple : Optimizely réduire son cycle de test de 24 heures à seulement une heure en tirant parti des tests de navigateur sans tête dans le cloud.
Les défis à garder à l’esprit
Bien qu'efficace, le mode sans tête présente quelques obstacles :
Pour améliorer la fiabilité et éviter la détection, vous pouvez :
Pour une efficacité encore plus grande dans des tâches spécifiques côté serveur, vous pouvez envisager l' chrome-headless-shell
Variante. Cette option légère est idéale pour les workflows axés sur l'automatisation. Lancez-la avec :
const browser = await puppeteer.launch({ headless: 'shell' });
Ce mode est particulièrement efficace pour les opérations côté serveur, offrant des performances rationalisées.
Ensuite, nous allons plonger dans le nouveau mode sans tête de Chrome et comment il fait passer les performances au niveau supérieur.
Chrome a introduit un mode headless amélioré qui propulse l'automatisation du navigateur à un niveau supérieur. Contrairement à l'ancienne version, ce mode utilise le même code source que le navigateur Chrome standard, garantissant une meilleure stabilité et un accès optimal à toutes les fonctionnalités du navigateur. Il allie l'efficacité du fonctionnement headless aux fonctionnalités d'un navigateur complet, rendant l'automatisation et le débogage beaucoup plus fluides.
Le nouveau mode headless fonctionne en créant des fenêtres de plateforme sans les afficher. Cela vous permet d'exploiter pleinement les fonctionnalités du navigateur tout en bénéficiant des avantages de performance du fonctionnement headless. Voici comment l'utiliser dans votre code :
const browser = await puppeteer.launch({ headless: 'new' }); // Explicitly use new headless mode
// OR
const browser = await puppeteer.launch({ headless: true }); // Defaults to new headless mode
Ce mode comprend également plusieurs outils pour faciliter le débogage :
Fonctionnalité | Objectif |
---|---|
Inspection visuelle | Afficher le comportement du navigateur (définir headless: false ) |
Moment de l'opération | Utilisez l'option slowMo possibilité de retarder les actions |
Surveillance de la console | Capturer la sortie de la console pour analyse |
Analyse du protocole | Activer la journalisation du protocole DevTools |
Diagnostic du navigateur | Utilisez dumpio: true pour les journaux détaillés |
1. Utilisation de DevTools pour le débogage
Vous pouvez activer les outils de développement intégrés de Chrome pour inspecter en détail le comportement du navigateur :
const browser = await puppeteer.launch({
headless: 'new',
devtools: true
});
2. Surveillance des performances et suivi des erreurs
La base de code partagée permet un profilage précis des performances et la résolution des erreurs. Utilisez cette configuration pour surveiller et déboguer les opérations côté client et côté serveur :
const browser = await puppeteer.launch({
headless: 'new',
devtools: true,
slowMo: 100,
args: ['--enable-logging', '--v=1']
});
Bien que l'ancien mode sans tête (headless: 'old'
) est toujours disponible, il est conseillé de passer à la nouvelle version. Le mode hérité sera progressivement supprimé ; la transition dès maintenant garantit la cohérence et vous prépare aux futures mises à jour.
Grâce à une base de code unifiée, le nouveau mode headless offre un comportement cohérent dans différents environnements. Cette cohérence réduit les problèmes spécifiques à chaque environnement et améliore la fiabilité des workflows automatisés.
Le mode d'affichage Navigateur ouvre une fenêtre de navigateur visible pendant les opérations de Puppeteer. Bien qu'il consomme davantage de ressources, il offre de meilleurs outils de débogage et un retour visuel.
L'exécution en mode affichage augmente l'utilisation des ressources mais offre certains avantages :
const browser = await puppeteer.launch({
headless: false,
args: ['--enable-gpu-rasterization'],
defaultViewport: null
});
Avec un navigateur visible, l'accélération matérielle GPU peut être activée, ce qui améliore les performances sur les sites web riches en images. De plus, ce mode réduit les risques de détection de robots en imitant le comportement standard du navigateur.
Le mode d'affichage est idéal pour le dépannage, offrant un retour visuel immédiat. Voici une configuration de débogage utile :
const browser = await puppeteer.launch({
headless: false,
devtools: true,
slowMo: 250,
defaultViewport: {
width: 1920,
height: 1080
}
});
Cette configuration ouvre automatiquement DevTools, introduit un délai de 250 ms pour une meilleure inspection et utilise une taille de fenêtre d'affichage standard pour des tests cohérents.
Scénario | Avantages | Conseils de configuration |
---|---|---|
Débogage visuel | Voir les interactions en temps réel | Activer DevTools, utiliser slowMo |
Test de l'interface graphique | Observer les comportements de l'interface utilisateur | Définir une taille de fenêtre d'affichage fixe |
Flux de travail complexes | Vérifier les interactions détaillées | Combiner avec la journalisation de la console |
Pour que tout fonctionne correctement en mode affichage :
Il est parfois utile de voir ce que le navigateur affiche. Au lieu de lancer le navigateur en mode headless, lancez une version complète du navigateur avec le mode headless défini sur
false
." - Documentation du marionnettiste
Pour les tâches plus exigeantes, vous pouvez améliorer le mode d'affichage avec des paramètres supplémentaires :
const browser = await puppeteer.launch({
headless: false,
args: [
'--enable-gpu-rasterization',
'--window-size=1920,1080',
'--disable-web-security'
],
dumpio: true
});
Cette configuration améliore la visibilité, permet une journalisation détaillée et un accès multi-origines. Ces ajustements garantissent une expérience plus fluide et préparent le terrain pour la comparaison des performances et des fonctionnalités dans le prochain guide.
Lors de la configuration de Puppeteer, chaque mode offre une combinaison différente de vitesse, d'utilisation des ressources et de capacités de débogage. Le choix du mode le plus adapté dépend de vos besoins spécifiques.
Voici une répartition des modes :
Le marionnettiste exploite le Protocole Chrome DevTools pour un contrôle précis du navigateur, y compris l'interception du réseau et l'exécution JavaScript, vous permettant d'affiner les configurations.
Par exemple, voici comment vous pouvez optimiser le nouveau mode sans tête :
const browser = await puppeteer.launch({
headless: 'new',
args: [
'--disable-gpu',
'--no-sandbox',
'--disable-setuid-sandbox'
]
});
Utilisez Standard Headless pour une automatisation rapide et économe en ressources, Browser Display pour un débogage détaillé ou New Headless lorsque vous avez besoin d'un équilibre entre performances et fonctionnalités.
Lors du choix d'un mode dans Puppeteer, tenez compte des objectifs et exigences spécifiques de votre projet. Puppeteer privilégie la rapidité, la sécurité, la stabilité et la simplicité. Voici un aperçu pour vous aider à choisir :
Mode sans tête standard est idéal si vous avez besoin :
Nouveau mode sans tête fonctionne mieux lorsque vous avez besoin de :
Mode d'affichage du navigateur est adapté aux scénarios qui impliquent :
Type de projet | Mode recommandé | Avantage clé |
---|---|---|
Tests de pipeline CI/CD | Standard sans tête | Exécution rapide avec une utilisation minimale des ressources |
Développement et débogage | Affichage du navigateur | Retour visuel complet et outils de développement |
Automatisation de la production | Nouveau sans tête | Un mélange solide de fonctionnalités et de performances |
L'API de Puppeteer permet de basculer facilement entre ces modes à mesure que votre projet évolue.