Flutter Web Testing
with O2
Built for Flutter's canvas-based architecture. O2 intelligently discovers and interacts with UI elements using Flutter semantics and visual reasoning—without writing automation scripts.
When the DOM is just canvas.
Traditional web apps expose every button and field as an addressable HTML element. Flutter web paints its entire interface onto a single canvas instead, leaving automation tools without reliable elements to select or interact with.
The DOM you expect
Buttons and inputs live in the HTML DOM. getByRole, getByText, and XPath all work reliably.
The DOM you get
The entire visual UI is painted into a <canvas>. CSS and XPath selectors return nothing. Your login button is invisible to automation.
O2 - The hidden layer
DevAssure O2 doesnot read the DOM. It uses visual reasoning for element-level interaction in the canvas.
One agent. Zero scripts.
When traditional DOM structures are hidden, the O2 agent uses adaptive visual reasoning to identify the UI elements rendered.
Visual canvas reasoning
When the DOM is not exposed, O2 identifies UI elements by visual appearance — "the email field below the logo" or "the Login button". Not coordinate clicking. Adaptive reasoning.
Scriptless E2E Test authoring
Tests are plain-English YAML. No selectors, no coordinate maps, no Dart test code. Write what a user would do — O2 figures out how.
More than just “did it click the button.”
Business flow validation
Login, navigation, form submission, and dashboard verification — the full user journey, not just individual element checks.
Console & network checks
Every run captures console errors and validates network responses — catching deployment issues.
Screenshot & visual record
Session screenshots attach to every test result — a visual record of what the agent saw and interacted with in the canvas.