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

如何在Puppeteer的page.$eval中传递link变量修改指定href?

解决Puppeteer中$eval无法传递外部变量的问题

问题出在page.$eval的回调函数运行在浏览器的沙箱上下文里,和你的Node.js代码上下文完全隔离——直接在回调里使用外部的link变量时,浏览器环境根本找不到这个变量。

解决方法很简单,把link作为额外参数传递给$eval的第三个参数位置,这样回调函数就能接收并使用这个变量了:

await page.$eval(
  'a[href="https://old.reddit.com/r/LSD/comments/18t1rp7/do_you_think_of_acid_as_the_king_drug/"]',
  (el, targetLink) => el.href = targetLink,
  link // 把外部变量作为第三个参数传入
)

如果需要传递多个变量,也可以直接传一个对象或者数组:

// 传递多个变量的对象示例
await page.$eval(
  'a[href="https://old.reddit.com/r/LSD/comments/18t1rp7/do_you_think_of_acid_as_the_king_drug/"]',
  (el, data) => {
    el.href = data.newLink;
    el.textContent = data.newText;
  },
  { newLink: link, newText: '新链接文本' }
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 02:22:02