Maison > interface Web > js tutoriel > Comment implémenter un délai dans Puppeteer ?

Comment implémenter un délai dans Puppeteer ?

Mary-Kate Olsen
Libérer: 2024-11-17 05:08:03
original
713 Les gens l'ont consulté

How to Implement a Time Delay in Puppeteer?

Attente d'une durée spécifiée dans Puppeteer

Dans Puppeteer, les développeurs rencontrent parfois le besoin de suspendre l'exécution pendant une période définie avant de passer à l'exécution. prochaine ligne de code. Bien que les tentatives d'incorporation de setTimeout dans les fonctions d'évaluation puissent sembler une solution viable, elles rencontrent souvent un comportement inattendu.

Solutions pour suspendre l'exécution

  1. Promesse -Based Delay : Une méthode simple et efficace consiste à définir une fonction de retard comme une promesse, puis à l'invoquer chaque fois qu'une pause est souhaitée.
function delay(time) {
   return new Promise(function(resolve) { 
       setTimeout(resolve, time)
   });
}
Copier après la connexion

Par exemple, pour faire une pause de 4 secondes :

console.log('before waiting');
await delay(4000);
console.log('after waiting');
Copier après la connexion
  1. page.waitForTimeout : Puppeteer fournit une fonction intégrée spécialement conçue pour l'attente.
await page.waitForTimeout(4000)
Copier après la connexion
  1. Évaluer résolu : Si la fonction page.evaluate est préférée, il est crucial de résoudre la promesse une fois le délai souhaité écoulé.
await page.evaluate(async() => {
    await new Promise(function(resolve) { 
           setTimeout(resolve, 1000)
    });
});
Copier après la connexion

Recommandation

Bien que l'approche d'évaluation puisse être utilisée, les deux premières méthodes sont généralement plus simples et efficaces.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal