首頁 > web前端 > js教程 > 如何在 Puppeteer 中引入延遲:最佳解決方案是什麼?

如何在 Puppeteer 中引入延遲:最佳解決方案是什麼?

Patricia Arquette
發布: 2024-11-13 14:59:02
原創
670 人瀏覽過

How to Introduce Delays in Puppeteer: What are the Best Solutions?

在 Puppeteer 中暫停執行:繼續之前的等待時間

使用 Puppeteer 時,可能需要在執行後續行之前引入延遲程式碼。然而,嘗試在評估函數中使用 setTimeout 函數常常會失敗。

解1:使用Promise 函數

一個簡單有效的解法是使用Promise 函數,如下:

function delay(time) {
   return new Promise(function(resolve) { 
       setTimeout(resolve, time)
   });
}
登入後複製

要建立延遲,只需使用指定所需持續時間的時間參數來呼叫函數。

console.log('before waiting');
await delay(4000);
console.log('after waiting');
登入後複製

解決方案2:使用Puppeteer 的waitForTimeout

Puppeteer 提供了一個名為waitForTimeout 的內建函數,可以用於此目的:

await page.waitForTimeout(4000)
登入後複製

解決方案3:使用page.evaluate (稍後解決)

雖然不像以前的解決方案那麼簡單,但可以利用 page.evaluate 來處理此任務。透過在指定時間後解決Promise,可以引入延遲:

await page.evaluate(async() => {
    await new Promise(function(resolve) { 
           setTimeout(resolve, 1000)
    });
});
登入後複製

結論

這些方法提供了在Puppeteer 中引入延遲的各種方法,具體取決於開發商的具體要求和偏好。

以上是如何在 Puppeteer 中引入延遲:最佳解決方案是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板