You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Puppeteer中page.evaluate无法识别传入的类名变量问题求助

问题原因

page.evaluate()的回调函数运行在浏览器的独立JS环境中,和你定义MyClassVariable的Node.js环境完全隔离——浏览器环境无法直接访问Node.js侧的变量,所以会抛出ReferenceError。

解决方法

直接将Node.js侧的变量作为参数传递给page.evaluate(),让浏览器环境能拿到这个值:

var MyClassVariable = "abc-class";
var testResult = await page.evaluate((className) => 
  Array.from(document.getElementsByClassName(className), e => e.innerText),
  MyClassVariable // 把Node.js侧的变量传入浏览器环境
);

如果需要传递多个变量,按顺序追加参数即可:

var class1 = "abc-class";
var class2 = "def-class";
var result = await page.evaluate((c1, c2) => {
  // 在这里可以使用c1和c2
  return [
    Array.from(document.getElementsByClassName(c1), e => e.innerText),
    Array.from(document.getElementsByClassName(c2), e => e.innerText)
  ];
}, class1, class2);

内容的提问来源于stack exchange,提问作者Thompson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 08:55:17