Maison >interface Web >js tutoriel >Comment introduire des retards dans Puppeteer : quelles sont les meilleures solutions ?

Comment introduire des retards dans Puppeteer : quelles sont les meilleures solutions ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-13 14:59:02665parcourir

How to Introduce Delays in Puppeteer: What are the Best Solutions?

Suspension de l'exécution dans Puppeteer : temps d'attente avant de continuer

Lorsque vous travaillez avec Puppeteer, il peut être nécessaire d'introduire des délais avant d'exécuter les lignes suivantes de code. Cependant, les tentatives d'utilisation de la fonction setTimeout dans une fonction d'évaluation ont souvent échoué.

Solution 1 : Utiliser une fonction de promesse

Une solution simple et efficace est pour utiliser une fonction de promesse, comme démontré ci-dessous :

function delay(time) {
   return new Promise(function(resolve) { 
       setTimeout(resolve, time)
   });
}

Pour créer un délai, appelez simplement la fonction avec un argument temporel spécifiant la durée souhaitée.

console.log('before waiting');
await delay(4000);
console.log('after waiting');

Solution 2 : Utilisation de waitForTimeout de Puppeteer

Puppeteer fournit une fonction intégrée appelée waitForTimeout qui peut être utilisée à cette fin :

await page.waitForTimeout(4000)

Solution 3 : Utilisation de page.evaluate (Résolu après un certain temps)

Bien que ce ne soit pas aussi simple que les solutions précédentes, il est possible d'utiliser page.evaluate pour gérer cette tâche. En résolvant la promesse après le délai spécifié, un retard peut être introduit :

await page.evaluate(async() => {
    await new Promise(function(resolve) { 
           setTimeout(resolve, 1000)
    });
});

Conclusion

Ces méthodes offrent diverses approches pour introduire des retards dans Puppeteer, en fonction de les exigences et préférences spécifiques du développeur.

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!

Déclaration:
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