Node.js 木偶演员开发工具程序化

Node.js 木偶演员开发工具程序化,node.js,automated-tests,puppeteer,devtools,Node.js,Automated Tests,Puppeteer,Devtools,我可以打开Puppeter中存在的devtools,但我无法将数据写入控制台部分,并将该数据的日志导出到cmd屏幕 在Puppeter中,我希望打印到控制台,如下所示,并获得下面的输出 你在这里要求两件事 将console.log消息捕获到命令提示符 在Puppeter内部运行javascript命令 对于第一点,您可以将选项dumpio:true设置为选项 对于第二点,您可以使用evaluate跳入页面,并调用console.log const puppeteer = require(

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

在Puppeter中,我希望打印到控制台,如下所示,并获得下面的输出


你在这里要求两件事

  • console.log
    消息捕获到命令提示符
  • 在Puppeter内部运行
    javascript命令
  • 对于第一点,您可以将选项
    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://stackoverflow.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);
      });
    
    第二个脚本返回

    PAGE LOG: 3
    PAGE LOG: We <3 people who code
    Done.
    
    页面日志:3
    
    页面日志:我们知道你太棒了!非常感谢。