首页 > 解决方案 > 从 page.evaluate 输出控制台日志到本地终端?

问题描述

如何将控制台日志从 page.evaluate 输出到本地终端?

await page.evaluate(() => {
    console.log("test"); // <-- I want this message to show in my local terminal

我在 MacOS 计算机上本地运行我的代码。

我在 github 问题中找到的以下解决方案无效:

解决方案 1

const browser = await puppeteer.launch({
    'args': ['--disable-dev-shm-usage', '--disable-software-rasterizer'],
    dumpio: true
});

// output:
// ERROR:gpu_process_transport_factory.cc(967)] Lost UI shared context.

解决方案 2

const browser = await puppeteer.launch({
    'args': ['--disable-dev-shm-usage', '--disable-software-rasterizer']
});

page.on('console', msg => {
    for (let i = 0; i < msg.args.length; ++i)
        console.log(`${i}: ${msg.args[i]}`);
});

// output:
// nothing

标签: web-scrapingpuppeteergoogle-chrome-headless

解决方案


我自己刚开始使用 Puppeteer。无法立即弄清楚,但在尝试了一些事情之后,这对我有用。

const names = await page.evaluate(() => {
        let names = document.querySelectorAll("#lnkBEName");
        console.log(names);
        return names;
    })
    console.log(names);

然后功能块内的console.log不起作用。但是,块外的最后一行有效。希望这可以帮助某人。


推荐阅读