Closed dschiller closed 3 years ago
Workaround:
${image] Set Variable App/UI
${imageScore} Get Match Score ${image} # <-- Doesn't work; Returns 0.0
${imageScore} Get Match Score ${image} # <-- Works; Returns 0.9x
Was a Timing Issue.
First I was using:
Wait for Image App/UI \ 5 # Tries 5 Seconds to find the Image
But my Refactoring to use Get Match Score
doesn't include a Timeout:
${image] Set Variable App/UI
${imageScore} Get Match Score ${image} # <-- Doesn't work; Returns 0.0 | Image not visible yet
${imageScore} Get Match Score ${image} # <-- Works; Returns 0.9x | Now the Image is visible
The finished Keywords:
Verify Image
[Arguments] ${image} ${message} ${keyword} ${timeout}=10 ${score}=.88
FOR ${steps} IN RANGE 999
${sleep} Set Variable .5
${matchScoreTime} Set Variable .5
${imageScore} Get Match Score ${image}
${sleepSteps} Evaluate ${steps} * (${sleep} + ${matchScoreTime})
# Log to Console ${imageScore} >= ${score} or ${sleepSteps} >= ${timeout}
Exit For Loop If ${imageScore} >= ${score} or ${sleepSteps} >= ${timeout}
Sleep ${sleep}
END
${imageScore} Get Match Score ${image}
# Log to Console ${imageScore} < ${score} @ ${image}
Run Keyword If ${imageScore} < ${score}
... Fail and Clean ${message} ${keyword}
Fail and Clean
[Arguments] ${message} ${keyword}
Run Keyword ${keyword}
Fail ${message}
Examples:
Verify Image App/UI UI is not correct Quit Application
Verify Image App/Peak Peak is not correct Quit Application 5
Doesn't work:
Works: