WebTest AI Docs

WebTest AI by AssertHive is agent-ready browser automation for testing real user flows. Write the intent and observable success conditions in Markdown. A bounded navigator chooses the next browser action, while the runtime owns execution, safety, assertions, evidence, and the final verdict.

The current phase-one runtime is intentionally small: Markdown goals, Chromium through native CDP, deterministic browser assertions, optional model navigation, and Jev-assisted element selection when a page has ambiguous controls.

How the runtime works

LayerResponsibilityWhat it does not do
Markdown contractDefines the user goal, approved data, and success conditions.It does not contain a click sequence or brittle locator.
Navigator modelReads the goal and fresh browser observation, then proposes one bounded action.It cannot change assertions, invent tools, or decide the verdict.
Jev selectorChooses one element reference from fresh candidates when intent is ambiguous.It does not plan the journey or operate the browser.
RuntimeExecutes approved actions, checks assertions, records evidence, and reports PASS, FAIL, or INCONCLUSIVE.It does not accept a model claim as proof.

Unique targets are resolved locally. Jev is called only when local resolution cannot safely identify one candidate. Every model decision, selector choice, browser action, and assertion is bounded and recorded.

Why this is agent-ready

How it relates to Cypress, Playwright, and Selenium

Cypress, Playwright, and Selenium are browser control and test-runner layers. WebTest AI adds a goal, agent, selector, policy, and evidence layer above browser execution. The bounded runtime uses native Chrome DevTools Protocol for its primary Chromium path and retains Playwright for multi-engine coverage and rich debugging.

ConcernTraditional automationWebTest AI
AuthoringCode, selectors, and ordered stepsMarkdown goal and success contract
Next actionWritten by the test authorSelected by a configured navigator model within runtime bounds
Ambiguous controlsLocator disambiguation in test codeFresh candidates ranked by Jev or a configured selector model
TruthAssertions are coupled to the test implementationRuntime assertions remain independent of model decisions
EvidenceRunner-specific traces and screenshotsAgent-readable evidence, model calls, tool calls, usage, and cost status

Try the Everyday Goods demo

The demo is a lightweight local shop with twelve Markdown goals covering search, cart state, checkout, delivery, validation, reload persistence, quantity, and scoped shipping and billing controls.

npm install
npx playwright install chromium
npm run demo

The default demo uses deterministic local fixtures. It runs the real browser protocol and reporting pipeline without a live model or billed tokens. Use it for repeatable protocol and report demonstrations.

To let an external navigator such as a Codex session choose actions while keeping Jev mocked for a controlled demo:

node src/cli/index.js demo session headed

For a configured navigator model and real Jev selector:

WEBTEST_AI_MODEL_CONFIG=examples/config/goal-agent-jev.config.json
TYPESAFE_API_KEY=your-key
npm run demo:live

Reports and cost

Each run produces an HTML report for people, an agent JSON report, a newline-delimited tool-call ledger, and a manifest linking the artifacts. Model usage and cost are shown when the provider returns token usage and the profile includes pricing. Missing usage remains explicitly unavailable. Subscription bridges such as an external Codex session may execute successfully without exposing billable token metadata.

Start here

Legacy intent-mode guides remain available for compatibility. New bounded Markdown goals should follow the getting-started and agent-workflows guides above.