// 截图 + 控制台错误采集(开发辅助脚本) import puppeteer from 'puppeteer-core'; const CHROME = 'C:/Program Files/Google/Chrome/Application/chrome.exe'; const URL = process.argv[2] || 'http:/localhost:5199/'; const OUT = process.argv[3] || 'shot'; const browser = await puppeteer.launch({ executablePath: CHROME, headless: 'new', args: ['--no-sandbox', '--disable-gpu', '--use-gl=swiftshader', '--enable-unsafe-swiftshader', '--window-size=1440,900'], }); const page = await browser.newPage(); await page.setViewport({ width: 1440, height: 900 }); const logs = []; page.on('console', (m) => logs.push(`[${m.type()}] ${m.text()}`)); page.on('pageerror', (e) => logs.push(`[pageerror] ${e.message}`)); await page.goto(URL, { waitUntil: 'domcontentloaded', timeout: 60000 }); await new Promise((r) => setTimeout(r, 6000)); // 依次截图三种视图 await page.screenshot({ path: `${OUT}-binder.png` }); await page.click('.view-btn[data-view="timeline"]'); await new Promise((r) => setTimeout(r, 2600)); await page.screenshot({ path: `${OUT}-timeline.png` }); await page.click('.view-btn[data-view="globe"]'); await new Promise((r) => setTimeout(r, 2600)); await page.screenshot({ path: `${OUT}-globe.png` }); // 翻页后截图(回到活页本并翻一页) await page.click('.view-btn[data-view="binder"]'); await new Promise((r) => setTimeout(r, 2600)); await page.click('#btn-next'); await new Promise((r) => setTimeout(r, 1600)); await page.screenshot({ path: `${OUT}-binder-flipped.png` }); console.log('LOGS:\n' + logs.join('\n')); await browser.close();