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}
Nested Flows

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
runFlow

runScript conditionally

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

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)

All of the normal element matchers are supported.

Selectors

JavaScript

Usage of JavaScript conditions is possible via true condition:

- runFlow:
    when:
      true: ${MY_PARAMETER == 'Something'}
    file: subflow.yaml
JavaScript

Last updated