Je récupère une page avec un marionnettiste qui contient des erreurs dans la console du navigateur, mais l'événement console du marionnettiste n'est pas déclenché par tous les messages de la console.
Le navigateur de marionnettiste Chrome affiche plusieurs messages sur la console
Cependant, le marionnettiste console uniquement enregistre une chose dans le nœud
Voici le script que j'utilise actuellement:
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
page.on('console', msg => console.log('PAGE LOG:', msg.text));
await page.goto('https://pagewithsomeconsoleerrors.com');
await browser.close();
})();
Edit: Comme indiqué dans mon commentaire ci-dessous, j'ai essayé la commande page.waitFor (5000) que Everettss a recommandée mais qui n'a pas fonctionné.
Edit2: suppression de l'opérateur d'étalement de msg.text
comme par hasard.
Edit3: J'ai ouvert un problème sur github à ce sujet avec des exemples de captures d'écran similaires mais différents: https://github.com/GoogleChrome/puppeteer/issues/1512
Vous devez définir plusieurs écouteurs si vous voulez tout capturer. L'événement console
est émis lorsque javascript dans la page appelle un message API de console (comme console.log
).
Pour une liste complète de l'API de la console, jetez un œil aux documents pour la console sur MDN: https://developer.mozilla.org/en-US/docs/Web/API/Console
La raison pour laquelle vous avez besoin de plusieurs écouteurs est qu'une partie de ce qui est enregistré dans l'image que vous avez publiée ne se produit pas dans la page .
Ainsi, par exemple, pour intercepter la première erreur dans l'image, net:: ERR_CONNECTION_REFUSED
, Vous devez définir l'écouteur comme suit: page.on('requestfailed', err => console.log(err));
La documentation de Puppeteer contient une liste complète des événements. Vous devriez jeter un oeil à la documentation de la version que vous utilisez et regarder les différents événements que la classe Page émettra ainsi que ce que ces événements retourneront. L'exemple que j'ai écrit ci-dessus retournera une instance de la classe de demande de Puppeteer.
https://github.com/GoogleChrome/puppeteer/blob/master/docs/api.md#class-page