首页  >  文章  >  web前端  >  如何在 Puppeteer 中实现时间延迟?

如何在 Puppeteer 中实现时间延迟?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-11-17 05:08:03650浏览

How to Implement a Time Delay in Puppeteer?

在 Puppeteer 中等待指定的时间

在 Puppeteer 中,开发人员偶尔会遇到需要在继续执行之前暂停执行一段指定的时间的情况。下一行代码。虽然尝试将 setTimeout 合并到评估函数中似乎是一个可行的解决方案,但它们经常会遇到意外行为。

暂停执行的解决方案

  1. Promise -Based Delay:一种简单有效的方法是将延迟函数定义为 Promise,然后在暂停时调用它
function delay(time) {
   return new Promise(function(resolve) { 
       setTimeout(resolve, time)
   });
}

例如,暂停 4 秒:

console.log('before waiting');
await delay(4000);
console.log('after waiting');
  1. page.waitForTimeout:Puppeteer 提供了一个内置的在功能上专门设计用于waiting.
await page.waitForTimeout(4000)
  1. 已解决的 Evaluate:如果首选 page.evaluate 函数,则在所需的延迟达到后解决承诺至关重要
await page.evaluate(async() => {
    await new Promise(function(resolve) { 
           setTimeout(resolve, 1000)
    });
});

建议

虽然可以使用评估方法,但前两种方法通常更直接和高效。

以上是如何在 Puppeteer 中实现时间延迟?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn