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 ctx = await b.newContext({ viewport: { width: 1440, height: 900 } }); const p = await ctx.newPage(); p.on("response", async (r) => { if (/\/api\/v1\/auth\/dev-login|\/api\/v1\/auth\/me/.test(r.url())) { console.log(`[${r.status()}] ${r.url().replace("https://canvas.flow-master.ai","")}`); } }); 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(); console.log("clicked dev-login, waiting for landing"); await p.waitForSelector(".hero-actions", { timeout: 30000 }).catch((e) => console.log("hero-actions timeout:", e.message)); await p.waitForTimeout(2000); const chips = await p.locator(".hub-chip").allTextContents(); console.log("chip count:", chips.length); console.log("chips:", chips.slice(0, 12).map(s => s.trim())); await b.close();