import { chromium } from "playwright"; const TOK = process.argv[2]; const b = await chromium.launch(); const ctx = await b.newContext({ viewport:{width:1440,height:900} }); const p = await ctx.newPage(); await p.goto("http://127.0.0.1:5173/", { waitUntil:"domcontentloaded" }); await p.evaluate((t)=>localStorage.setItem("airshelf_token",t), TOK); // mirror model-photo await p.goto("http://127.0.0.1:5173/exact/model-photo.html", { waitUntil:"networkidle" }); await p.waitForTimeout(1800); const mirror = await p.evaluate(()=>{ const items=[...document.querySelectorAll(".mp-ps-item, .ps-item, [class*='ps-item'], .pl-item")].map(e=>e.innerText.replace(/\s+/g,' ').slice(0,30)); return { count: items.length, items: items.slice(0,10) }; }); console.log("MIRROR model-photo product list:", JSON.stringify(mirror)); // real API const api = await p.evaluate(async (t)=>{ const r=await fetch("/api/products/",{headers:{Authorization:"Token "+t}}); const d=await r.json(); return (d.results||[]).map(x=>x.title); }, TOK); console.log("REAL /api/products/:", JSON.stringify(api)); await b.close();