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

如何通过Puppeteer执行带await的DevTools命令并获取返回值?

Puppeteer执行带await的函数返回undefined的解决方法

你当前的代码里有两处关键错误导致返回undefined:

  1. 把异步调用语句用引号包裹成了字符串,相当于没有执行任何有效逻辑
  2. 没有主动返回异步函数的执行结果,page.evaluate需要明确返回值才能传递到Node.js环境

修正后的代码如下:

const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await page.goto('http://localhost:3000'); // 补充协议头,避免解析异常

  // 去掉多余引号,主动返回异步函数的执行结果
  const s = await page.evaluate(async () => {
    return await nindo(this.endpoint);
  }); 

  console.log(s);
  await browser.close();
})();

额外注意事项:

  • 确保nindo函数在页面的浏览器环境中是可访问的,和你在DevTools中执行时的环境一致
  • 如果this.endpoint在evaluate回调中的指向不符合预期,可以直接替换为具体的端点字符串,或者先在页面上下文里确认this的指向
  • page.goto的URL建议补充http://或https://,避免Puppeteer因URL格式问题抛出错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 16:23:21