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

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

Patricia Arquette
发布: 2024-12-10 17:42:11
原创
177 人浏览过

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

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

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