Files
ledgerly-docs/scripts/ts/capture-all.ts
T

44 lines
1.7 KiB
TypeScript

// 一键重新截图:覆盖文档站全部配图(整页 + 元素 + 卡片 + 账单解析预览)。
//
// 可重复执行,重新生成并替换已有截图。运行前请确保:
// - 应用实例已启动且测试库中已配置 AI(用于截取启用 AI 后的界面);
// - scripts/samples/alipay_sample.zip 样例账单存在。
import { mkdir } from 'node:fs/promises'
import { injectSession, launchBrowser, login, newContext } from './browser.js'
import { captureAiRule, captureBillParse, captureCards, captureEditRecord, captureModals, captureSettingsPanels, captureTrendJump } from './capture-elements.js'
import { capturePages } from './capture-pages.js'
import { ELEM_DIR } from './config.js'
async function main(): Promise<void> {
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 captureModals(page)
await captureEditRecord(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)
})