أحاول الحصول على مثال تتبع أساسي مع تمكين خيار لقطات الشاشة ، ومع ذلك ، فإنه ينتج 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 Screenshots مضمنة في التتبع: حاول سحب الملف trace.json
وإفلاته في لوحة أداء devtools.
إذا كنت ترغب في تصدير لقطات شاشة التتبع ، فإن هذا المثال السريع الذي يستند إلى مثال Everettss في الإصدار 1368 يبدو أنه يعمل بالنسبة لي.
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 أعتقد أنه يفشل عند تعطل الكروم.
كيف يمكنني تنفيذ هذا ، حتى أتمكن من معرفة النقطة التي تحطم فيها الكروم؟
التعليق الأكثر فائدة
إذا كنت ترغب في تصدير لقطات شاشة التتبع ، فإن هذا المثال السريع الذي يستند إلى مثال Everettss في الإصدار 1368 يبدو أنه يعمل بالنسبة لي.