首頁 > web前端 > js教程 > 如何在 Puppeteer 執行流程中引入延遲和暫停?

如何在 Puppeteer 執行流程中引入延遲和暫停?

Linda Hamilton
發布: 2024-11-10 04:29:02
原創
571 人瀏覽過

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
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板