32 lines
1.4 KiB
JavaScript
32 lines
1.4 KiB
JavaScript
import { chromium } from '@playwright/test'
|
|
import { writeFileSync } from 'node:fs'
|
|
const OUT = 'D:/Temp/claude/D--JobRoomz-KArtSell-Aegis/da832daa-83e6-4660-8d4b-a698136f10e3/scratchpad/pw-capture'
|
|
const BASE = 'http://127.0.0.1:5173'
|
|
const pages = [
|
|
['31-sell-decision', '/research/sell-decision'],
|
|
['32-data-quality', '/ops/data-quality'],
|
|
['33-rebalance', '/portfolio/rebalance'],
|
|
['34-market-ingestion', '/ops/market-data-ingestion'],
|
|
['35-ingestion-status', '/ops/market-data-history'],
|
|
['36-risk-dashboard', '/portfolio/risk'],
|
|
]
|
|
|
|
const browser = await chromium.launch()
|
|
const page = await browser.newPage({ viewport: { width: 1440, height: 1000 } })
|
|
const consoleLog = []
|
|
const pageErrors = []
|
|
page.on('console', msg => { if (msg.type() === 'error' || msg.type() === 'warning') consoleLog.push(`[${msg.type()}] ${msg.text()}`) })
|
|
page.on('pageerror', err => pageErrors.push(String(err)))
|
|
|
|
for (const [name, path] of pages) {
|
|
consoleLog.push(`--- ${name} ${path} ---`)
|
|
await page.goto(BASE + path, { waitUntil: 'networkidle' }).catch(e => pageErrors.push(`goto ${path}: ${e}`))
|
|
await page.waitForTimeout(400)
|
|
await page.screenshot({ path: `${OUT}/${name}.png`, fullPage: true })
|
|
}
|
|
|
|
writeFileSync(`${OUT}/retrofit-console.log`, consoleLog.join('\n'))
|
|
writeFileSync(`${OUT}/retrofit-page-errors.log`, pageErrors.join('\n'))
|
|
await browser.close()
|
|
console.log('DONE', 'console:', consoleLog.length, 'errors:', pageErrors.length)
|