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: folder/some-flow.yaml
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: some-script.js
Multiple conditions
- runFlow:
when:
visible: 'Some Text'
platform: iOS
file: folder/some-flow.yaml
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, e.g.
- runFlow:
when:
visible:
id: 'someId'
text: 'Some Text'
below:
text: 'Some Other Text'
childOf:
id: 'someParentId'
text: 'Some Parent Text'
index: 2
file: folder/some-flow.yaml
JavaScript
Usage of JavaScript conditions is possible via true
condition:
- runFlow:
when:
true: ${MY_PARAMETER == 'Something'}
file: subflow.yaml
Last updated
Was this helpful?