Common command arguments
Learn common Maestro command arguments. Use labels to clarify steps or mask data, and optional to continue flows even if commands fail.
Some arguments are common to all commands.
Labels
Each Maestro command accepts an optional label attribute that lets you customize the command's name:
- tapOn:
id: buy-now
label: Tap on Buy Now button
- inputText:
label: Input the company email
text: [email protected]
- swipe:
direction: LEFT
label: Swipe for onboarding✅ Tap on Buy Now button
✅ Input the company email
✅ Swipe for onboardingSetting a label can have an additional advantage of being able to remove sensitive content from console output, for example this:
✅ Tap on "Password"
✅ Input text "mySecr3tPassw0rd!"becomes:
✅ Tap on "Password"
✅ Enter the test user's passwordThe values will still appear in the logs of the run.
Labels are also a useful alternative to comments for contributors trying to understand the intent of a particular step.
- extendedWaitUntil:
visible: Recommended Products
timeout: 5000
label: Wait for all personalized content to loadOptional
Each Maestro command accepts an optional optional attribute that lets control what should happen if the command fails.
- launchApp: com.example.example
- assertVisible:
text: Summer sale is here!
optional: true
- tapOn: Sign up now!If optional is set to true, the flow will continue executing even if the command fails. The warning will be displayed:
✅ Launch app "com.example.example"
⚠️ Assert that "Summer sale is here!" is visible (warned)
✅ Tap on "Sign up now!"The default value of optional for almost all commands is false, which means that the flow will stop executing if any command fails. The only exception (at least for now) are AI-powered commands, which have optional set to true by default.
Last updated
Was this helpful?
