Conditions

By design, Maestro discourages the usage of conditional statements unless absolutely necessary as they could easily ramp up the complexity of your tests.

runFlow conditionally

- runFlow:
when:
visible: Some Text
file: {reference to another yaml file}
Or, if you don't wish to extract your commands into a separate flow file, you can run the commands inline like this:
- runFlow:
when:
visible: Some Text
commands:
- tapOn: Some Text

runScript conditionally

- runScript:
when:
visible: Some Text
file: {reference to a javascript file}

Multiple conditions

- runFlow:
when:
visible: Some Text
platform: iOS
file: {reference to another yaml file}
Note that multiple conditions are applied as AND conditions.

Conditions

Supported conditions include:
visible: { Element matcher } # True if matching element is visible
notVisible: { Element matcher } # True if matching element is not present
true: { Value } # True if given value is true or not empty
platform: { Platform } # True if current platform is given platform (Android|iOS|Web)

JavaScript

Usage of JavaScript conditions is possible via true condition:
- runFlow:
when:
true: ${MY_PARAMETER == 'Something'}
file: subflow.yaml