Here is the solution with “visualSearch”. The macro waits until the blue banner disappears OR until the timeout of 60 seconds is reached. At t=21s in the video I click the button to hide the banner => macro no longer finds image and ends loop.
Code:
{
"Name": "wait for image disappear",
"CreationDate": "2022-12-11",
"Commands": [
{
"Command": "open",
"Target": "https://www.w3schools.com/howto/howto_js_toggle_hide_show.asp",
"Value": "i",
"Description": ""
},
{
"Command": "store",
"Target": "1",
"Value": "!timeout_wait",
"Description": "Tell VisualSearch to not wait for image long"
},
{
"Command": "store",
"Target": "${!runtime}",
"Value": "starttime",
"Description": "Save current time"
},
{
"Command": "do",
"Target": "",
"Value": "",
"Description": ""
},
{
"Command": "visualSearch",
"Target": "bluebutton_dpi_168.png",
"Value": "i",
"Description": ""
},
{
"Command": "echo",
"Target": "Number of images found: i = ${i}",
"Value": "green",
"Description": ""
},
{
"Command": "executeScript_Sandbox",
"Target": "return parseFloat(${!runtime});",
"Value": "r",
"Description": ""
},
{
"Command": "executeScript_Sandbox",
"Target": "return parseFloat(${!runtime}) - parseFloat(${starttime}) ",
"Value": "timediff",
"Description": "If the image does not disappear within 60 seconds, then trigger a timeout error. Remove this logic of you want to wait forever."
},
{
"Command": "echo",
"Target": "time difference between NOW and loop start = ${timediff}",
"Value": "pink",
"Description": ""
},
{
"Command": "if_v2",
"Target": "${timediff} > 60",
"Value": "",
"Description": ""
},
{
"Command": "throwError",
"Target": "Waited too long, lets stop",
"Value": "",
"Description": ""
},
{
"Command": "end",
"Target": "",
"Value": "",
"Description": ""
},
{
"Command": "repeatIf",
"Target": "${i} > 0",
"Value": "",
"Description": "i > 0 means the image is FOUND, then we wait until it is gone "
},
{
"Command": "echo",
"Target": "Image disappeared!!!",
"Value": "blue",
"Description": ""
}
]
}