Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

visual-check.mjs 1.2KB

12345678910111213141516171819202122232425262728293031323334
  1. import { chromium } from "playwright";
  2. import fs from "node:fs";
  3. const b = await chromium.launch({ channel: "chrome", headless: true });
  4. const p = await b.newPage({
  5. viewport: { width: 1440, height: 1000 },
  6. deviceScaleFactor: 1,
  7. });
  8. await p.emulateMedia({ reducedMotion: "reduce" });
  9. const errors = [];
  10. p.on("pageerror", (e) => errors.push(e.message));
  11. await p.goto("http://localhost:5175", { waitUntil: "networkidle" });
  12. await p.evaluate(async () => {
  13. for (const i of document.images) {
  14. i.loading = "eager";
  15. }
  16. await Promise.all(
  17. [...document.images].map((i) => i.decode().catch(() => {})),
  18. );
  19. });
  20. await p.screenshot({ path: "/tmp/adu-desktop-loaded.png", fullPage: true });
  21. await p.screenshot({ path: "/tmp/adu-hero.png" });
  22. await p
  23. .locator(".new-arrivals")
  24. .screenshot({ path: "/tmp/adu-new-arrivals.png" });
  25. await p.setViewportSize({ width: 390, height: 844 });
  26. await p.evaluate(() => window.scrollTo({ top: 0, behavior: "instant" }));
  27. await p.screenshot({ path: "/tmp/adu-mobile-loaded.png", fullPage: true });
  28. await p.goto(
  29. "http://localhost:5175/product/the-original-salted-egg-cornflakes-clan",
  30. );
  31. await p.waitForTimeout(700);
  32. await p.screenshot({ path: "/tmp/adu-product-mobile.png", fullPage: true });
  33. console.log({ errors });
  34. await b.close();