Maison > interface Web > js tutoriel > le corps du texte

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

Linda Hamilton
Libérer: 2024-11-10 04:29:02
original
482 Les gens l'ont consulté

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

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

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

await page.waitForTimeout(4000)
Copier après la connexion

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

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!

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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!