Javascript 无法在无头浏览器中读取控制台日志
我在一个NodeJS项目中运行Puppeter,尝试获取URL的控制台日志。它似乎只适用于启动时没有警告或错误的初始控制台日志 我想查看的是所有日志,就像您在普通浏览器中查看前x秒的日志一样。这是我的密码:Javascript 无法在无头浏览器中读取控制台日志,javascript,node.js,puppeteer,Javascript,Node.js,Puppeteer,我在一个NodeJS项目中运行Puppeter,尝试获取URL的控制台日志。它似乎只适用于启动时没有警告或错误的初始控制台日志 我想查看的是所有日志,就像您在普通浏览器中查看前x秒的日志一样。这是我的密码: const puppeteerOptions = { headless: true, args: ['--disable-gpu', '--disable-dev-shm-usage', '--disable-setuid-sandbox', '--no-first-run'
const puppeteerOptions =
{
headless: true,
args: ['--disable-gpu', '--disable-dev-shm-usage', '--disable-setuid-sandbox', '--no-first-run', '--no-sandbox', '--no-zygote', '--single-process'],
};
(async () =>
{
try
{
const browser = await HeadlessBrowser.launch(puppeteerOptions);
const page = await browser.newPage();
page.on('console', msg =>
{
console.log(msg.text());
});
await page.goto('https://uk.yahoo.com/');
await browser.close();
}
catch(e) {return reject(e);}
})();
在这种情况下,我要去雅虎网站,其中包含大量的控制台日志,但没有显示任何在这里。我想这是因为他们是在网站加载后才登录的
至于在前x秒内读取日志,我在关闭浏览器之前尝试过添加这些日志,但所做的只是暂停关闭,没有控制台日志通过
等待页面。等待(10000) 我设法解决了这个问题,下面是正确的方法
const delay = 5000; //Milliseconds, 5 seconds
(async () =>
{
try
{
const browser = await HeadlessBrowser.launch(puppeteerOptions);
const page = await browser.newPage();
page.on('console', msg =>
{
//do whatever
});
page.on('pageerror', error =>
{
// do whatever
});
/*
page.on('requestfailed', request => {
//Didn't need
});
*/
await page.goto(data.url);
await page.waitFor(delay);
await browser.close();
Utils.logger('Finished reading console logs.');
return resolve();
}
catch(e) {return reject(e);}
})();
感谢它在dom加载之前显示了所有加载的内容,这很好,但是你知道我将如何记录接下来10秒左右出现的内容吗@乔治