Hey all,
I’ve got a fairly large suite of automations I am building for regression testing purposes. I have a large library of components that I have built to function in our QA/DEV environments, and am able to execute all of the tests built with this library in our QA/DEV spaces without issue.
However, a recent production change is requiring me to run these automations against a Production instance, and some of my automations are failing inexplicably.
Most notably, I have an Element Exists activity with 3000ms timeout in a loop that waits to see if an Internet Explorer window opens containing a report. In Dev/QA, this works perfectly well - the report usually takes ~10 seconds to open, so the loop executes a few times, logging the search each time (logging is why I use a short timeout in a loop rather than one longer timeout). If the search fails 40 times (giving time for a long-running report to finish), an exception is thrown.
The issue is that when running the same activity against Production, the Element Exists activity returns a false instantly. Looking at the logs, I can see a False being returned and the loop executes 40 times in less than a second, throwing the exception before the report tab even has a chance to open. I’ve manually validated that all the selectors are valid - if I add long delay activities before the Element Exists, it finds the elements just fine.
The issue also doesn’t occur with an activity that isn’t contained in a library - I built a stub workflow that just executes the report and executes the loop checking for the IE window, and it works perfectly fine against the production instance. The problem only seems to be happening with the compiled activity, and only when running the automation against this one environment.
Does anyone have any ideas of what may cause the Element Exists activity to return an instant False without waiting for the configured timeout? Thanks for any advice you are able to offer!