I wrote a for loop within robot framework, I need it to execute until certain conditions are met. I can't find a built in key word that does this efficiently. Any help would be appreciated.
:FOR | ${index} | IN RANGE | 100
VR button pressed
sleep | 1 sec
${micState}= | Devaluate | signals[UISpeechService][micState][value][mode]
${VoiceRecognition}= | Devaluate | signals[UISpeechService][voiceRecognition][value][state]
${DialogActive}= | Devaluate | signals[UISpeechService][vrDialogActive][value][state]
sleep | 1 sec
should be equal | ${micState} | "open"
should be equal | ${VoiceRecognition} | "on"
should be equal | ${DialogActive} | true
so basically this presses the VR button, evaluates signals from another program, then compares those values to what they should be.
This will continue until the values compared are all equal.
The problem that is occuring is that if at any point the values are not equal it fails the test and ends the testcase. Or if they are all true after the first iteration, it will continue to do the loop 100 times.
How do I get it to exit the loop as soon as the three conditions are equal? While also continuing the loop if they are not equal.
Thank you