shot-pages.mjs 1.1 KB

123456789101112131415161718192021222324252627282930313233
  1. import { chromium } from 'playwright-core'
  2. import { mkdirSync } from 'node:fs'
  3. import { fileURLToPath } from 'node:url'
  4. import { join } from 'node:path'
  5. const base = process.env.DEMO_URL || 'http://localhost:5174'
  6. const dir = fileURLToPath(new URL('./shots/', import.meta.url))
  7. mkdirSync(dir, { recursive: true })
  8. const pages = [
  9. ['home', '/'],
  10. ['productivity', '/screen/productivity'],
  11. ['operation', '/screen/operation'],
  12. ['duty', '/screen/duty'],
  13. ['workbench', '/admin/workbench'],
  14. ['master', '/admin/master'],
  15. ['dutyops', '/admin/duty'],
  16. ['finance', '/admin/finance'],
  17. ['collab', '/admin/collab'],
  18. ]
  19. const browser = await chromium.launch({
  20. executablePath: 'C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe',
  21. headless: true,
  22. })
  23. const page = await browser.newPage({ viewport: { width: 1440, height: 900 } })
  24. for (const [name, path] of pages) {
  25. await page.goto(base + path, { waitUntil: 'networkidle' })
  26. await page.waitForTimeout(600)
  27. await page.screenshot({ path: join(dir, `${name}.png`), fullPage: true })
  28. console.log('shot', name)
  29. }
  30. await browser.close()