在 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中文網其他相關文章!