首頁 >web前端 >js教程 >如何正確地將變數傳遞給 Puppeteer 的 `page.evaluate()` 函數?

如何正確地將變數傳遞給 Puppeteer 的 `page.evaluate()` 函數?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-27 20:22:10260瀏覽

How to Correctly Pass Variables to Puppeteer's `page.evaluate()` Function?

將變數傳遞到Puppeteer 的page.evaluate() 函數

在Puppeteer 中,page.evaluate() 函數可讓您在網頁瀏覽上執行自訂JavaScriptScriptScriptScriptScriptScript器。然而,目前還不清楚如何將變數從 Node 傳遞到 page.evaluate() 函數以在計算程式碼中使用。

當嘗試傳遞變數時,典型的方法是使用箭頭函數語法:

const links = await page.evaluate((evalVar) => {...});

但是,如果在箭頭函數中遇到evalVar is undefined 的錯誤,則表示該變數沒有被傳遞到函數中正確。

要解決此問題,必須將變數作為參數傳遞給頁面函數。調整後的語法是:

const links = await page.evaluate((evalVar) => {...}, evalVar);  // 1. pass variable as an argument

這裡,變數 evalVar 作為附加參數傳遞給箭頭函數,使其可以在計算的程式碼中存取。

此技術適用於傳遞多個變數也是如此。只需在page.evaluate() 函數呼叫中新增更多參數:

await page.evaluate((a, b, c) => { console.log(a, b, c) }, a, b, c)

確保傳遞的參數可序列化為JSON 或瀏覽器內物件的JSHandle 非常重要,因為這些是受支持的用於將變數傳遞給page.evaluate().

的類型

以上是如何正確地將變數傳遞給 Puppeteer 的 `page.evaluate()` 函數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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