以编程方式使用 Puppeteer Devtools
Puppeteer Devtools Programaticaly
我可以打开Puppeteer中存在的devtools,但是我无法将数据写入控制台部分并将此数据的日志导出到cmd屏幕?
在 Puppeteer 中,我想如下打印到控制台并获得以下输出。
Screenshot
你在这里要求两件事
- 捕获
console.log
消息到命令提示符
- 运行一个
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.
我可以打开Puppeteer中存在的devtools,但是我无法将数据写入控制台部分并将此数据的日志导出到cmd屏幕?
在 Puppeteer 中,我想如下打印到控制台并获得以下输出。
Screenshot
你在这里要求两件事
- 捕获
console.log
消息到命令提示符 - 运行一个
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.