Paste a URL and AI drafts a real-browser test of your critical journey. When your UI moves and a selector breaks, it heals itself. Every failure keeps a video. And CI gets a pass/fail check on the pull request — no Playwright to write, no scripts to babysit.
real Chromium · runs on schedule · opens incidents like any other monitor
No test framework to learn. The autopilot does the first draft; you keep what you like.
Give the autopilot a URL. It opens the page in a real browser and reads what's actually there — headings, links, buttons, form fields — with stable selectors.
It proposes a multi-step journey — sign in, search, add to cart, check out — as clear steps you can edit in place or run exactly as drafted. No Playwright, no selectors to hand-write.
Schedule it like any monitor. Every run drives real Chromium; a failed step opens an incident, pages on-call, and shows up on your status page — the whole platform, for free.
The number-one reason browser tests rot is a renamed button or a restructured page. When a step's selector stops matching, uptime.ooo inventories the live page and proposes the replacement that matches the original intent.
✗ step 2 (click) #buy-now-button selector no longer matches ▸ proposed fix high confidence #buy-now-button → #purchase-cta "Renamed purchase button — same intent" ✓ applied · re-checked · UP in 1.8s ✓ incident auto-resolved
When a journey fails, "it's broken" isn't enough. Every failed run is captured end to end so you know exactly what the browser saw and did.
✓ 0 goto /login 862ms ✓ 1 fill #email 40ms ✓ 2 click button[submit] 120ms ✗ 3 assert_text .welcome 5003ms timeout — element not found · 4 assert_url /dashboard skipped ▶ video.webm · screenshot.jpg · 2 console errors
After your deploy step, one curl turns a monitor — or a whole suite of them — into a commit status on the PR. Pending the moment you ship, pass or fail when the journey actually runs against the preview. No GitHub App to install.
# after deploy, verify the checkout journey curl -X POST \ -H "Authorization: Bearer $UPTIME_KEY" \ -d '{"github":{"repo":"you/app","sha":"'$SHA'"}}' \ https://uptime.ooo/api/v1/monitors/<id>/run # the PR check: ✓ uptime.ooo / checkout flow — passed in 1716ms
A browser flow is just another monitor — so it inherits everything.
goto, click, fill, press, wait-for, and assert on text, URL, or title. Playwright auto-waiting under the hood; each step auto-retries up to its timeout.
A failed flow opens an incident, runs your escalation policy, and pages the on-call — exactly like an HTTP check going down.
Put a critical journey on your public status page so customers see "checkout: operational," not just "the server responds."
We watch each flow's latency against its own baseline and flag it when it starts sliding — before it fails outright.