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
Libérer: 2024-11-13 14:59:02
original
658 Les gens l'ont consulté

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)
   });
}
Copier après la connexion

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');
Copier après la connexion

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)
Copier après la connexion

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)
    });
});
Copier après la connexion

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!

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