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!