page.evaluate 中的 Puppeteer 日志

新手上路,请多包涵

我如何在 page.evaluate 中 console.log 一些东西,将它传递给节点并在页面评估 期间 使用它?

我实际上想将 page.evaluate 的进度记录到控制台并向用户显示一些结果。

原文由 Alex Arvanitidis 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 475
2 个回答

puppeteer 12 的更新,改编自 当前文档

 page.on('console', async (msg) => {
  const msgArgs = msg.args();
  for (let i = 0; i < msgArgs.length; ++i) {
    console.log(await msgArgs[i].jsonValue());
  }
});

await page.evaluate(() => console.log('hello', 5));
await page.evaluate(() => console.log({ foo: 'bar' }));
await page.evaluate(() => console.log([1, 2, 3, 4, 5]));

显示以下结果:

 hello
5
{ foo: 'bar' }
[ 1, 2, 3, 4, 5 ]

原文由 Vaviloff 发布,翻译遵循 CC BY-SA 4.0 许可协议

让它完全按照您期望的方式工作的最简单方法

const page = await browser.newPage();
page.on('console', (log) => console[log._type](log._text));

原文由 Clay Risser 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题