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

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

Mary-Kate Olsen
發布: 2024-12-27 20:22:10
原創
264 人瀏覽過

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

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