// 一键重新截图:覆盖文档站全部配图(整页 + 元素 + 卡片 + 账单解析预览)。 // // 可重复执行,重新生成并替换已有截图。运行前请确保: // - 应用实例已启动且测试库中已配置 AI(用于截取启用 AI 后的界面); // - scripts/samples/alipay_sample.zip 样例账单存在。 import { mkdir } from 'node:fs/promises' import { injectSession, launchBrowser, login, newContext } from './browser.js' import { captureAddRecord, captureAiRule, captureBillParse, captureCalendarDetail, captureCalendarMonth, captureCalendarYear, captureCards, captureEditRecord, captureInlineCreate, captureModals, captureSettingsPanels, captureTrendJump } from './capture-elements.js' import { capturePages } from './capture-pages.js' import { ELEM_DIR } from './config.js' async function main(): Promise { await mkdir(ELEM_DIR, { recursive: true }) const browser = await launchBrowser() try { // 1. 未登录状态:登录/注册卡片(独立上下文,不注入登录态) const guestContext = await newContext(browser, { width: 1440, height: 900 }) const guestPage = await guestContext.newPage() await captureCards(guestPage) await guestContext.close() // 2. 登录态上下文:整页 + 弹窗 + 账单解析预览 const token = await login() const context = await newContext(browser) await injectSession(context, token) const page = await context.newPage() await capturePages(page) await captureCalendarMonth(page) await captureCalendarYear(page) await captureCalendarDetail(page) await captureAddRecord(page) await captureModals(page) await captureEditRecord(page) await captureInlineCreate(page) await captureAiRule(page) await captureSettingsPanels(page) await captureBillParse(page) await captureTrendJump(page) await context.close() } finally { await browser.close() } } main().catch((err) => { console.error('FAIL', err) process.exit(1) })