page.evaluate() 函数中的变量
Puppeteer 的 page.evaluate() 函数是用于在页面执行中执行 JavaScript 的多功能工具语境。然而,将变量传递到此函数中可能会很棘手。
未定义的变量
当您尝试访问 page.evaluate() 函数中的变量时,您可能会遇到错误“evalVar:未定义”。这是因为函数外部定义的变量在函数内部无法访问。
通过参数传递变量
要解决此问题,请将变量作为参数传递给页面函数如下:
const links = await page.evaluate((evalVar) => { console.log(evalVar); // 2. Should be defined now ... }, evalVar); // 1. Pass the variable as an argument
多个变量
您还可以通过向 page.evaluate() 添加更多参数来传入多个变量:
await page.evaluate((a, b, c) => { console.log(a, b, c) }, a, b, c)
可序列化参数
您传递的参数必须可序列化为 JSON,或者是浏览器内对象的 JSHandles。详情请参考Puppeteer官方文档:https://pptr.dev/#?show=api-pageevaluatepagefunction-args。
以上是如何将变量传递给 Puppeteer 的 `page.evaluate()` 函数?的详细内容。更多信息请关注PHP中文网其他相关文章!