Puppeteer: لا يبدو أن tracing.start ينتج لقطات شاشة

تم إنشاؤها على ١٨ أكتوبر ٢٠١٧  ·  3تعليقات  ·  مصدر: puppeteer/puppeteer

أحاول الحصول على مثال تتبع أساسي مع تمكين خيار لقطات الشاشة ، ومع ذلك ، فإنه ينتج 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();
})();

ما هي النتيجة المتوقعة؟

  • أنتج لقطات شاشة للمخطط الزمني جنبًا إلى جنب مع trace.json

ماذا يحدث بدلا من ذلك؟

  • ينتج trace.json فقط. لم يتم إخراج لقطات شاشة.

باستخدام ما يلي

  • إصدار محرك العرائس: 0.12.0
  • إصدار النظام الأساسي / نظام التشغيل: Mac OSX 10.13
  • عناوين URL (إن وجدت): google.com

التعليق الأكثر فائدة

إذا كنت ترغب في تصدير لقطات شاشة التتبع ، فإن هذا المثال السريع الذي يستند إلى مثال 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();
})();

ال 3 كومينتر

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 أعتقد أنه يفشل عند تعطل الكروم.
كيف يمكنني تنفيذ هذا ، حتى أتمكن من معرفة النقطة التي تحطم فيها الكروم؟

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات