Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
DevFlow provides commands for interacting with UI elements in a running MAUI app, including tapping, filling text, scrolling, navigating, and mutating properties.
Important
DevFlow is experimental and will change between releases.
Tap an element
Use the interact tap command to simulate a tap on a UI element. Elements are identified by their AutomationId:
maui devflow agent interact tap --automationid "MyButton"
Set AutomationId on your MAUI controls to make them discoverable by DevFlow:
<Button AutomationId="MyButton" Text="Click me" />
The tap simulates a user interaction on the target element, triggering any associated event handlers or commands.
Fill text
Use the interact fill command to enter text into Entry or Editor controls:
maui devflow agent interact fill --automationid "UsernameEntry" --text "testuser@example.com"
This clears the existing text and enters the specified value, similar to a user typing into the field.
Scroll
Use the interact scroll command to scroll within scrollable containers such as ScrollView or CollectionView:
maui devflow agent interact scroll --automationid "MyScrollView" --direction down
Supported scroll directions include up, down, left, and right.
Navigate
DevFlow supports navigation commands for apps that use Shell or NavigationPage:
maui devflow agent interact navigate --route "//MainPage/Details"
For Shell-based apps, specify the route using Shell URI syntax. For NavigationPage-based apps, specify the target page type.
Mutate properties
You can change element properties at runtime for debugging purposes. This is useful for testing different visual states or verifying layout behavior without rebuilding the app:
maui devflow agent interact mutate --automationid "MyLabel" --property "Text" --value "Updated text"
Property mutations are applied immediately to the running app. Changes are not persisted and are lost when the app is restarted.