import { chromium } from "playwright"; const args = ["--host-resolver-rules=MAP canvas.flow-master.ai 65.21.71.186", "--ignore-certificate-errors"]; const b = await chromium.launch({ headless: true, args }); const p = await (await b.newContext({ viewport: { width: 1440, height: 900 } })).newPage(); const reqs = []; p.on("request", (r) => { if (/\/api\/ea2/.test(r.url())) reqs.push({ m: r.method(), u: r.url() }); }); p.on("response", async (r) => { if (/\/api\/ea2/.test(r.url())) { const t = await r.text().catch(() => ""); console.log(`[${r.status()}] ${r.request().method()} ${r.url().replace("https://canvas.flow-master.ai", "")} → ${t.slice(0, 200)}`); } }); await p.goto("https://canvas.flow-master.ai/", { waitUntil: "networkidle" }); await p.waitForTimeout(800); await p.locator(".persona-chip", { hasText: /Mariana/ }).click(); await p.locator(".dev-login-btn").click(); await p.waitForTimeout(2500); await p.locator(".hub-chip", { hasText: /Attendance Map/ }).click(); await p.waitForTimeout(4500); const markers = await p.locator(".leaflet-marker-icon").count(); console.log(`markers=${markers}`); await b.close();