以编程方式使用 Puppeteer Devtools

Puppeteer Devtools Programaticaly

我可以打开Puppeteer中存在的devtools,但是我无法将数据写入控制台部分并将此数据的日志导出到cmd屏幕?

在 Puppeteer 中,我想如下打印到控制台并获得以下输出。

Screenshot

你在这里要求两件事

  1. 捕获 console.log 消息到命令提示符
  2. 运行一个javascript command里面的人偶

对于第一点,您可以将选项 dumpio: true 设置为选项

对于第二点,您可以使用 evaluate 跳转到页面并调用 console.log

    const puppeteer = require('puppeteer');

    (async () => {
      const browser = await puppeteer.launch({
        dumpio: true
      });
      const page = await browser.newPage();

      const url = "https://whosebug.com";
      await page.goto(url);

      await page.waitFor('h1');

      await page.evaluate(() => {
        console.log(document.getElementsByTagName("h1")[0].innerText);
      });

      console.log("Done.")
      await browser.close();

    })();  

同样为了简洁起见,如果你得到很多输出,你可以省略 dumpio 而不是将日志作为事件捕获,例如

  page.on('console', (msg) => console[msg._type]('PAGE LOG:', msg._text));

  await page.waitFor('h1');

  await page.evaluate(() => {
    console.log(1 + 2);
    console.log(document.getElementsByTagName("h1")[0].innerText);
  });

第二个脚本returns

PAGE LOG: 3
PAGE LOG: We <3 people who code
Done.