在 Puppeteer 中,page.evaluate() 函数允许您在网页上执行自定义 JavaScript浏览器。然而,目前还不清楚如何将变量从 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中文网其他相关文章!