I am currently working on automating some processes on a local desktop software. I currently have a working loop where I break out of the loop once a certain piece of text appears on screen, I don’t believe this is an embedded piece of text in the software and it appears as a bitmap image for about 1 second and then disappears again and looks like this.
My problem is that my current method of detecting it uses a find image activity so that as soon as the output variable of that activity gets any kind of value assigned I break out of the loop, this is working but is introducing a significant delay within each loop approx 3-4 seconds where this loop is executed hundreds of times per automation so I am wondering if there is a faster way i can break out of the loop using this text that appears. I have confirmed this is the activity that is causing the delays and this text is the only indicator on screen that i need it to break from the loop and move on to the next step.
That image should have selectors even though it’s an image. You could use a Check App State and play with the visibility setting. Then it’ll just continue the instant it finds the image visible.
** Use “Wait for Element Appear” (Fastest & Easiest)**
Select the area where the text shows.
Set a very small timeout, like 0.2 or 0.3 seconds.
When it detects the text → break the loop.
This works much faster than Find Image.
** Use “Screen OCR Trigger” (Best for blinking text)**
Draw a small box around where the text appears.
Tell it to watch for the word (e.g., “Complete”).
When it appears → the trigger fires → break the loop.
No delay because it constantly listens.
** If you must use Find Image**
Make it faster by:
Selecting only the small area where the text appears
Lowering accuracy
Setting timeout to 300–500 ms
In short
Instead of searching for the image in every loop, use a trigger or fast UI detection that instantly fires when the text appears. This removes the delay and makes your loop very fast.
thanks for your ideas, what i have done in the end is invoke a small piece of code which tracks a specific pixel and when it changes from black to white it breaks the loop this seems to be working very quickly at the moment