capture-one.js 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. /* eslint-disable */
  2. // 测试脚本:只截一张图(借记卡权益列表)
  3. const { chromium } = require('playwright')
  4. const path = require('path')
  5. const fs = require('fs')
  6. const BASE = 'http://localhost:8080'
  7. const OUT_DIR = path.resolve(__dirname, '../../prd/汇丰银行/screenshots')
  8. ;(async () => {
  9. console.log('启动 chromium...')
  10. const browser = await chromium.launch({ headless: true })
  11. const context = await browser.newContext({ viewport: { width: 1440, height: 900 }, deviceScaleFactor: 2 })
  12. const page = await context.newPage()
  13. console.log('访问登录页注入 token...')
  14. await page.goto(BASE + '/login', { waitUntil: 'domcontentloaded' })
  15. await page.evaluate(() => {
  16. localStorage.setItem('token', 'mock-token-' + Date.now())
  17. localStorage.setItem('username', 'admin')
  18. })
  19. const url = BASE + '/#/customization/hsbc/equity-products'
  20. console.log('访问', url)
  21. try {
  22. await page.goto(url, { waitUntil: 'networkidle', timeout: 15000 })
  23. } catch (e) {
  24. console.log('networkidle 超时,降级 domcontentloaded')
  25. await page.goto(url, { waitUntil: 'domcontentloaded', timeout: 15000 })
  26. }
  27. await page.waitForTimeout(1500)
  28. if (!fs.existsSync(OUT_DIR)) fs.mkdirSync(OUT_DIR, { recursive: true })
  29. const file = path.join(OUT_DIR, '2-1-equity-products-list.png')
  30. await page.screenshot({ path: file, fullPage: true })
  31. const size = (fs.statSync(file).size / 1024).toFixed(0)
  32. console.log(`✓ ${file} (${size}KB)`)
  33. await browser.close()
  34. })()