【问题标题】:puppeteer : console.log in evaluate triggers error "Unhandled promise rejection"puppeteer:console.log 在评估中触发错误“未处理的承诺拒绝”
【发布时间】:2023-12-19 19:11:02
【问题描述】:
In puppeteer , when i want to use console.log from evaluate , it triggers me an error

const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch({headless: false});

  const page = await browser.newPage();
  page.on('console', msg => console.log('PAGE LOG:', ...msg.args));
  await page.goto('http://google.com',  {waitUntil: 'load'});
  await page.evaluate(async() => console.log('url is ${location.href}'));
  browser.close();
})();  

(node:70544) UnhandledPromiseRejectionWarning: 未处理的承诺 拒绝(拒绝 id:1):TypeError:未定义不可迭代 (节点:70544)[DEP0018] 弃用警告:未处理的承诺 拒绝被弃用。在未来,承诺拒绝是 未处理将以非零退出终止 Node.js 进程 代码。

你知道怎么处理吗?

【问题讨论】:

    标签: javascript node.js chromium puppeteer browser-testing


    【解决方案1】:

    msg.args 值未定义,因此当您尝试使用扩展运算符 (...msg.args) 时,它会失败。

    要么记录msg.args,要么将其包装在一个空/未定义的检查中

    【讨论】: