Création de retards dans le code de Puppeteer
Dans Puppeteer, il peut être nécessaire d'introduire des retards intentionnels avant d'exécuter les lignes de code suivantes. Pour résoudre ce problème, vous pouvez opter pour l'une des solutions suivantes :
Utiliser une fonction de promesse
Pour des délais flexibles et indépendants, envisagez d'utiliser une simple fonction de promesse :
function delay(time) { return new Promise(function(resolve) { setTimeout(resolve, time) }); }
Pour mettre en œuvre le délai, effectuez les modifications suivantes :
console.log('before waiting'); await delay(4000); console.log('after waiting');
En utilisant Fonction intégrée de Puppeteer
Si vous préférez rester dans l'environnement Puppeteer, profitez de la fonction waitForTimeout intégrée :
await page.waitForTimeout(4000)
Cette fonction mettra efficacement en pause l'exécution du code pour le nombre spécifié de millisecondes.
Utilisation d'Evaluated Promesses
Si vous préférez toujours utiliser page.evaluate, vous pouvez modifier votre code actuel pour résoudre la promesse après le délai souhaité :
await page.evaluate(async() => { await new Promise(function(resolve) { setTimeout(resolve, 1000) }); });
Cependant, cette approche peut ne pas être aussi pratique que les deux premières méthodes en raison de son potentiel de surcomplication.
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!