Node.js 木偶演员开发工具程序化
我可以打开Puppeter中存在的devtools,但我无法将数据写入控制台部分,并将该数据的日志导出到cmd屏幕 在Puppeter中,我希望打印到控制台,如下所示,并获得下面的输出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(
你在这里要求两件事
console.log
消息捕获到命令提示符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
页面日志:我们知道你太棒了!非常感谢。