首页 > web前端 > js教程 > 如何正确地将变量传递给 Puppeteer 的 `page.evaluate()` 函数?

如何正确地将变量传递给 Puppeteer 的 `page.evaluate()` 函数?

Mary-Kate Olsen
发布: 2024-12-27 20:22:10
原创
265 人浏览过

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

将变量传递到 Puppeteer 的 page.evaluate() 函数

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

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板