import { chromium } from "playwright"; const uid = process.argv[2] || "denisauto:5168959"; const browser = await chromium.launch(); const page = await browser.newPage({ viewport: { width: 1280, height: 900 } }); const errors = []; page.on("pageerror", (e) => errors.push(String(e))); page.on("console", (m) => { if (m.type() === "error") errors.push(m.text()); }); await page.goto(`http://localhost:8095/vehicule/${encodeURIComponent(uid)}`, { waitUntil: "networkidle" }); await page.waitForSelector(".vdetail h1", { timeout: 15000 }); const checks = { titre: await page.locator(".vd-head h1").textContent(), badge_marche: await page.locator(".market-badge").textContent().catch(() => "ABSENT"), galerie: await page.locator(".gallery .main img").count(), compteur_photos: await page.locator(".gal-count").textContent().catch(() => "ABSENT"), analyse_marche: await page.locator(".mkt-stats").count(), scatter: await page.locator(".scatter").count(), carte: await page.locator(".map-embed").count(), autres_offres: await page.locator(".offer").count(), ka_score: await page.locator(".score-ball").textContent().catch(() => "ABSENT"), fiche_constructeur: (await page.locator(".panel h3", { hasText: "Fiche constructeur" }).count()), rappels: await page.locator(".recall").count(), }; // lightbox : clic sur la photo principale await page.locator(".gallery .main img").click(); checks.lightbox_ouverte = await page.locator(".lightbox img").count(); checks.lb_compteur = await page.locator(".lb-count").textContent().catch(() => "ABSENT"); await page.keyboard.press("ArrowRight"); await page.waitForTimeout(300); checks.lb_apres_fleche = await page.locator(".lb-count").textContent().catch(() => "ABSENT"); await page.keyboard.press("Escape"); await page.waitForTimeout(200); checks.lb_fermee = (await page.locator(".lightbox").count()) === 0; // screenshot pleine page await page.screenshot({ path: "/tmp/autoka-vehicle.png", fullPage: true }); console.log(JSON.stringify(checks, null, 2)); console.log("JS errors:", errors.length ? errors : "aucune"); await browser.close();