Problem
Real UIs have state. The current step vocabulary is a flat linear sequence
with no branching. Examples of flows the spec cannot currently express:
- A "Complete" button that shows "Undo" if already logged today
- Optional fields that change the flow depending on user input
- A form that shows different fields based on a previous selection
An agent following linear steps mechanically will fail on any flow
that branches.
Proposed addition
A conditional syntax for v2.1.0:
IF selector_exists [data-agent-id="undo-button"]
CLICK [data-agent-id="undo-button"]
ELSE
CLICK [data-agent-id="complete-button"]
END
Source
Raised during implementation against an app with stateful UI elements
that change based on prior user actions.
Problem
Real UIs have state. The current step vocabulary is a flat linear sequence
with no branching. Examples of flows the spec cannot currently express:
An agent following linear steps mechanically will fail on any flow
that branches.
Proposed addition
A conditional syntax for v2.1.0:
Source
Raised during implementation against an app with stateful UI elements
that change based on prior user actions.