Selenium gave us browser automation. agent-qa adds intent, self-healing, and memory.
Selenium is the two-decade veteran of programmatic browser control. agent-qa is what the same job looks like now: plain-English tests, adaptive execution, and a harness built for coding agents.
Try agent-qa, the open-source AI QA agent that remembers what a decade of scripts never could.
agent-qa vs Selenium
| Capability | agent-qa | Selenium | Details |
|---|---|---|---|
| Plain-English authoring | Selenium tests are code plus locators plus explicit waits. agent-qa tests are natural-language YAML anyone can review. | ||
| Survives UI changes | XPath and CSS locators are Selenium's most famous failure mode. agent-qa re-plans from intent when the UI shifts and remembers the change. | ||
| Execution memory | agent-qa accumulates behavioral memory across runs; Selenium sessions know nothing about the last run. | ||
| Open source | Both are open source. agent-qa adds the AI harness on top of open foundations. | ||
| Local and CI execution | Both run anywhere. agent-qa needs no Grid topology to plan, execute, and report a flow. | ||
| Mobile app testing | Selenium's ecosystem reaches mobile through Appium as a separate stack. agent-qa covers web and native mobile in one contract. | ||
| Coding-agent native | agent-qa exposes MCP tools, Skills, artifacts, and failure classification designed for autonomous agents; Selenium predates the idea. | ||
| Wait/timing management | Explicit and implicit wait tuning is a Selenium discipline of its own. agent-qa's runtime observes actual app state while executing intent. |
Why teams retire Selenium suites for agent-qa
Decades of locator debt, gone
Legacy Selenium suites are archaeology: brittle XPath, page objects three refactors behind, waits tuned for servers that no longer exist. agent-qa lets you re-express what those tests were for — in English — and delete the debt instead of servicing it.
The team that can write tests gets bigger
Selenium coverage depends on engineers fluent in the framework. agent-qa tests are plain-English YAML — product engineers, QA specialists, and coding agents all author at the same speed, so coverage stops bottlenecking on framework expertise.
A harness from the agent era
Selenium was designed for humans writing scripts against browsers. agent-qa is designed for a world where coding agents change code continuously and need to verify it themselves — MCP tools, Skills, memory, and evidence built in from the start.
Selenium earned its place in history. agent-qa is what you'd build today: open source like Selenium, but with intent instead of locators, memory instead of amnesia, and coding agents as first-class operators.
Frequently asked questions
Is agent-qa a good Selenium alternative?
Yes — it's the generational upgrade path. agent-qa replaces locator-based scripts with natural-language tests that self-adapt, remember prior runs, and produce reviewable evidence, while staying open source and repo-owned like the Selenium workflow you're leaving.
What does agent-qa cost compared to Selenium?
Both are free and open source. Selenium's hidden cost is the engineering time spent maintaining locators, waits, and Grid infrastructure; agent-qa trades that for LLM token spend under your control, with caching to keep repeat runs cheap.
How do I migrate a large Selenium suite to agent-qa?
Don't port code — harvest intent. Group your Selenium tests by user journey, write each journey as one agent-qa YAML test, and run both in parallel until trust is established. Teams typically find hundreds of scripts collapse into dozens of intent-level tests.
Does agent-qa need Selenium Grid or similar infrastructure?
No. agent-qa runs against local browsers, CI runners, and mobile emulators or devices you already have — there's no hub-and-node topology to operate, and no vendor cloud in the loop.
Can agent-qa test legacy web apps that Selenium currently covers?
Yes. agent-qa drives real browsers, so server-rendered and legacy UIs work the same as SPAs — often better than old Selenium scripts, because intent-based execution doesn't depend on the exact markup those scripts froze in time.
Write tests in natural language
Define actions and assertions in human language while agents work from visible roles, labels, and screen state.
Learn about natural language tests
test-id: t_slice-cart-bane-deep-fold-prim-paar-baru-nable-kayname: Check Linear issue creation flowtarget: linear-webuse: browser: name: chromiumsteps: - Click on the Create issue icon. - | Verify that the Create issue modal is shown. - | Enter "Fix mobile login" in the "Issue title" input field. - | Select "Engineering" from the Team selector and select "Todo" from the Status field. - Click on the Create issue button. - | Verify that the created issue is shown with title "Fix mobile login" and status "Todo".
Evolves with every run
With every test run, agent-qa builds execution memory from product, suite, and test observations, then adds that context to future runs. agent-qa also curates memory from steps that were healed during execution, helping future runs avoid the same mistake.
Learn about memory
Built for Humans
Top-tier developer experience with a beautiful dashboard, intuitive CLI, and clear workflows for authoring, running, and debugging tests.
Learn about the dashboard
Runs
❯ agent-qa run tests/linear/create-issue.yamlRunning 1 test(s)...✓ Click on the Create issue icon. 5s Sub-actions: 1 total (1 succeeded, 0 failed)✓ Verify that the Create issue modal is shown. 4s Sub-actions: 1 total (1 succeeded, 0 failed)✓ Enter "Fix mobile login" in the "Issue title" input field. 5s Sub-actions: 1 total (1 succeeded, 0 failed)✓ Select Engineering from Team and Todo from Status 6s Sub-actions: 2 total (2 succeeded, 0 failed)✓ Click on the Create issue button. 3s Sub-actions: 1 total (1 succeeded, 0 failed)✓ Verify created issue title and Todo status 6s Sub-actions: 2 total (2 succeeded, 0 failed) PASS Check Linear issue creation flow 29sRun ID: r_lined-frig-schema-main-depart-hing-aline-balls-cran-dess Memory: 1 added (3s)Run attributes: agent-qa.trigger=cli agent-qa.runner=localTests: 1 of 1 passedSteps: 6 passed, 6 totalCache: 6 hits, 0 missesTime: 29s
Built for Machines
The same primitives are exposed through MCP and skills so coding agents can discover schemas, author YAML, enqueue runs, inspect artifacts, and triage failures.
Learn about MCP
Accelerate runs with smart Cache
The action cache reuses validated plans across similar subsequent test runs, reducing planner work, token usage, and runtime overhead.
Learn about caching
Execution Speed
42s -> 8s
Cached action plans skip redundant planner work on similar subsequent runs.
Reduced Token Usage
fewer planner tokens
Validated steps reuse prior reasoning when the flow and screen state still match.
Run sandboxed hooks during tests
Run Node, Bun, Python, or Bash hooks in isolated Docker containers to set up environments, call APIs, seed fixtures, tear down state, or pass structured outputs back into the active test run.
Learn about hooks
// emits CHECKOUT_EUR_TOTAL_CENTS for the active test runconst response = await fetch("https://api.frankfurter.app/latest?from=USD&to=EUR,GBP")const { rates } = await response.json() const fixture = { plan: "team", currency: "USD", subtotal_cents: 2900, eur_total_cents: Math.round(2900 * rates.EUR), gbp_total_cents: Math.round(2900 * rates.GBP), seat_limit: 12, fixture_at: "2026-05-07T00:00:00Z",} const env = Object.entries(fixture) .map(([key, value]) => `CHECKOUT_${key.toUpperCase()}=${value}`) .join("\n") await Bun.write("/tmp/agent-qa.env", `${env}\n`)console.log(JSON.stringify({ checkoutFixture: fixture }, null, 2))
Review your QA like code
Tests, configs, hooks, memory, and suite logic all live as version-controlled code, so every change can be diffed, reviewed, reused, and shared across teams.
Learn about configuration
Self-healing test execution
When any sub-action, such as click, fill, or select, fails, agent-qa re-observes the UI and tries a different path in the same run. Tests recover from UI drift and flaky interactions instead of failing on the first broken action.
Learn about self-healing
Bring your own LLM
Run tests with the model of your choice via OpenAI- and Anthropic-compatible endpoints, Gemini, local or open-source models, and subscriptions like Codex and Claude Code.
Learn about LLM providers

More comparisons
* This comparison is based on publicly available information. Product capabilities and pricing can change; verify details with each vendor before making a purchase decision.