首页 > web前端 > js教程 > 正文

如何在 Puppeteer 执行流程中引入延迟和暂停?

Linda Hamilton
发布: 2024-11-10 04:29:02
原创
482 人浏览过

How to Introduce Delays and Pauses in Puppeteer Execution Flow?

控制 Puppeteer 中的执行流程:实现延迟和暂停

在 Puppeteer 中,经常需要暂停或延迟执行,然后再继续后续操作代码行。这对于与网页同步或有效模拟用户交互至关重要。

一种常见的方法是使用 JavaScript 的 setTimeout 函数,该函数将回调和时间间隔作为参数。但是,如提供的代码片段所示,此方法无法在 Puppeteer 的上下文中实现预期结果。

解决方案涉及利用基于 Promise 的方法。一种方法是定义一个延迟函数:

function delay(time) {
   return new Promise(function(resolve) { 
       setTimeout(resolve, time)
   });
}
登录后复制

通过调用该函数,在执行流程中引入指定时长的延迟:

console.log('before waiting');
await delay(4000);
console.log('after waiting');
登录后复制

Puppeteer 还提供了一个内置的-in waitForTimeout 函数提供对暂停持续时间的直接控制:

await page.waitForTimeout(4000)
登录后复制

此外,如果仍然希望使用 page.evaluate 来引入延迟,那么确保回调函数在期望的间隔:

await page.evaluate(async() => {
    await new Promise(function(resolve) { 
           setTimeout(resolve, 1000)
    });
});
登录后复制

通过实现这些延迟技术,您可以有效地控制 Puppeteer 中的执行流程,确保与网页的正确同步和真实交互。

以上是如何在 Puppeteer 执行流程中引入延迟和暂停?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!