Maison  >  Article  >  interface Web  >  Comment introduire des retards et des pauses dans le flux d'exécution du marionnettiste ?

Comment introduire des retards et des pauses dans le flux d'exécution du marionnettiste ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-10 04:29:02518parcourir

How to Introduce Delays and Pauses in Puppeteer Execution Flow?

Contrôle du flux d'exécution dans Puppeteer : mise en œuvre de retards et de pauses

Dans Puppeteer, il est souvent nécessaire de suspendre ou de retarder l'exécution avant de passer aux étapes suivantes. lignes de code. Ceci est essentiel pour la synchronisation avec les pages Web ou pour simuler efficacement les interactions des utilisateurs.

Une approche courante consiste à utiliser la fonction setTimeout de JavaScript, qui prend un rappel et un intervalle de temps comme paramètres. Cependant, comme le démontre l'extrait de code fourni, cette méthode n'obtient pas le résultat escompté dans le contexte de Puppeteer.

Une solution consiste à tirer parti des approches basées sur la promesse. Une façon consiste à définir une fonction de retard :

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

En invoquant cette fonction, un retard de la durée spécifiée est introduit dans le flux d'exécution :

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

Puppeteer fournit également un -en fonction waitForTimeout qui offre un contrôle direct sur la durée de la pause :

await page.waitForTimeout(4000)

De plus, si l'envie persiste d'utiliser page.evaluate pour l'introduction de retards, il est crucial de s'assurer que la fonction de rappel est correctement résolue après l'intervalle souhaité :

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

En implémentant ces techniques de retard, vous pouvez contrôler efficacement le flux d'exécution dans Puppeteer, en garantissant une bonne synchronisation et interaction réaliste avec les pages Web.

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