์คํฌ๋ฆฐ์ท ์ต์ ์ด ํ์ฑํ๋ ๊ธฐ๋ณธ ์ถ์ ์์ ๋ฅผ ์ป์ผ๋ ค๊ณ ํ๋๋ฐ 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 ์ฑ๋ฅ ํจ๋๋ก ๋์ด๋ค ๋์ผ์ญ์์ค.
์ถ์ ์คํฌ๋ฆฐ์ท์ ๋ด๋ณด๋ด๋ ค๋ฉด ๋ฌธ์ 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 ํฌ๋กฌ์ด ์ถฉ๋ํ๋ฉด ์คํจํ๋ ๊ฒ ๊ฐ์์.
ํฌ๋กฌ์ด ์ถฉ๋ํ๋ ์์ ์ ์ ์ ์๋๋ก ์ด๊ฒ์ ์ด๋ป๊ฒ ๊ตฌํํ ์ ์์ต๋๊น?
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ถ์ ์คํฌ๋ฆฐ์ท์ ๋ด๋ณด๋ด๋ ค๋ฉด ๋ฌธ์ 1368์ @Everettss ์์ ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ์ด ๋น ๋ฅธ ์์ ๊ฐ ์ ์๊ฒ ์ ํฉํ ๊ฒ ๊ฐ์ต๋๋ค.