首頁 >web前端 >js教程 >如何在 Puppeteer 中實現時間延遲?

如何在 Puppeteer 中實現時間延遲?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-17 05:08:03718瀏覽

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 提供了專門為等待而設計的內建函數。
await page.waitForTimeout(4000)
  1. 已解決的評估:如果首選 page.evaluate 函數,那麼在所需的延遲過去後解決承諾至關重要。
await page.evaluate(async() => {
    await new Promise(function(resolve) { 
           setTimeout(resolve, 1000)
    });
});

建議

雖然可以使用評估方法,但前兩種方法通常更簡單、更有效率。

以上是如何在 Puppeteer 中實現時間延遲?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn