【问题标题】:Output console logs from page.evaluate to local terminal?从 page.evaluate 输出控制台日志到本地终端?
【发布时间】:2018-11-03 22:09:59
【问题描述】:

如何将控制台日志从 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-scraping puppeteer google-chrome-headless


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-07
    • 2011-01-21
    • 2019-10-06
    • 2017-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多