I’m currently automating application that under heavy load of data sometimes becomes unresponsive (title bar changes to not responding).
I was wondering if there is some correct way of automating around this issue. This is what happens. NOTE: All WaitForReady flags are set to COMPLETE. NOTE2: All automation is on GUI.
UiRobot clicks button.
Application becomes unresponsive for couple of seconds.
UiRobot tries to clicks another button while application is still unresponsive.
Application becomes responsive but the flow is already broken.
In this application I can’t unfortunatelly rely on any other indicator to wait for before next activity.
Does anyone have any ideas on how to work around this issue other than Delay?
during the “unresponsive” phase… you could check
a) if the element you require is available AND
b) if the OCR Text “not responsive” is available
if b is the case, you could go in a little delay-activity…
An alternative might be the “Image vanish” part of “Not responsive”…?! However, that would imply that it happens every time (so you would have to check first, if it’s existing…)
You could try WaitAttribute activity I think. Grab the window title, perform the action, wait for the title to revert to normal.
You could also check window and/or control aastate before operating on it. Add a check just on places you know it could go unresponsive, i.e. input actions.
I’d avoid OCR text whenever possible - if it’s windows app, you shouldn’t need it. It’s slow and not really that reliable (if application goes unresponsive an is greyed out, OCR would get messy).
While you probably already did, it’s worth mentioning that investigating the cause is also a possibility - maybe it’s a bottleneck on a web request, maybe I/O speed (an SSD can work wonders with those) etc. If you can diagnose that it could help to eliminate the issue completely, instead of working around it.