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