我正在尝试使用启用了屏幕截图选项的工作来获取基本跟踪示例,但是,它会生成 trace.json,但没有屏幕截图。
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.tracing.start({screenshots: true, path: 'trace.json'});
await page.goto('https://www.google.com');
await page.tracing.stop();
await browser.close();
})();
预期的结果是什么?
相反会发生什么?
使用以下
@kesava屏幕截图嵌入在跟踪中:尝试将trace.json
文件拖放到 devtools 性能面板中。
如果您确实想导出跟踪屏幕截图,这个基于issue 1368中@Everettss示例的快速示例似乎对我有用。
const puppeteer = require('puppeteer');
const fs = require('fs');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.tracing.start({ screenshots: true, path: 'trace.json' });
await page.goto('https://www.google.com', { timeout: 60000 });
await page.tracing.stop();
// --- extracting data from trace.json ---
const tracing = JSON.parse(fs.readFileSync('./trace.json', 'utf8'));
const traceScreenshots = tracing.traceEvents.filter(x => (
x.cat === 'disabled-by-default-devtools.screenshot' &&
x.name === 'Screenshot' &&
typeof x.args !== 'undefined' &&
typeof x.args.snapshot !== 'undefined'
));
traceScreenshots.forEach(function(snap, index) {
fs.writeFile('trace-screenshot-'+index+'.png', snap.args.snapshot, 'base64', function(err) {
if (err) {
console.log('writeFile error', err);
}
});
});
// --- end extracting data from trace.json ---
await page.close();
})();
@QmarkC我认为当 chrome 崩溃时它会失败。
我该如何实现这一点,以便我可以知道 chrome 在哪一点崩溃?
最有用的评论
如果您确实想导出跟踪屏幕截图,这个基于issue 1368中@Everettss示例的快速示例似乎对我有用。