Une réponse rapide de curl ou d'Axios ne concerne généralement qu'une seule ressource. Puppeteer peut aussi récupérer des scripts, des images, des cadres et des API sur plusieurs hôtes, puis attendre un jalon de page plus tardif.

Le proxy étant déjà configuré sur la page existante, observez les échecs individuels pendant la navigation :

page.on("requestfailed", request => {
  console.log(request.url(), request.failure()?.errorText);
});

await page.goto(targetUrl, {
  waitUntil: "domcontentloaded",
  timeout: 30000,
});

Exécutez ceci dans le flux asynchrone avec le véritable targetUrl. L'exemple attend DOMContentLoaded, qui survient avant l'achèvement de chaque image requise ou d'une réponse applicative ultérieure. Comparez ce jalon à celui attendu par la navigation d'origine : document principal, DOM, load ou inactivité réseau sont des résultats différents.

Une réponse 403 ou 500 n'est pas un événement requestfailed. Lisez aussi le statut via HTTPResponse.

Servez-vous des observations pour identifier une ressource lente ou refusée, une authentification répétée ou une condition d'attente plus tardive. Un délai plus long ne fait que prolonger l'attente ; il ne réduit pas le travail du navigateur et ne prouve pas que chaque connexion de ressource a été acceptée.

Articles similaires