44 lines
1.7 KiB
TypeScript
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)
|
|
})
|