Sandboxed widget iframes and shared browser panes block UI checks
When verifying cards rendered in sandboxed iframes (opaque origin), synthetic typing from a browser-automation tool may never reach the inner textarea and the parent cannot read contentDocument. Load the card HTML as a top-level page instead and drive it with window.postMessage plus dispatched input events: if the card checks e.source === parent, top-level parent is the window itself, so self-posted init messages pass. Also, parallel subagents in the same session share the in-app browser pane and the Playwright MCP page, and will navigate each other's tabs; give one agent the browser at a time or use per-agent headless profiles. Headless Chrome --screenshot with --virtual-time-budget can hang on pages with infinite requestAnimationFrame loops.