How Cursor + BrowserAct Handles Dynamic Pages Without Brittle Selectors A developer used Cursor with BrowserAct CLI to test a dynamic project filter on modern web applications, demonstrating how the tool enables AI agents to inspect current page state, act, and reassess without relying on brittle selectors. The approach avoids test failures caused by frontend updates that change element IDs or structure. Modern web applications change constantly. Components are re-rendered, generated attributes may differ between builds. Even when the UI looks identical, browser automation can fail because it still relies on assumptions captured before the page changed. In this article, I used Cursor with BrowserAct CLI to test a dynamic project filter. Instead of relying on unreliable selectors, Cursor used BrowserAct to inspect the current page state and complete the task without relying on brittle selectors. The goal wasn't to eliminate the DOM or replace Playwright. The goal was to give an AI agent a reliable inspect → act → reassess loop that works on modern, dynamic websites. Well, let's get started 🏎️ A browser test can run successfully for weeks and suddenly fail after a harmless frontend update. The button is still visible. The feature still works. Yet the test fails because the element it expected no longer exists. php < -- Initial page --