Working with unresponsive applications

uiautomation
studio

#1

Hello!

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.

  1. UiRobot clicks button.
  2. Application becomes unresponsive for couple of seconds.
  3. UiRobot tries to clicks another button while application is still unresponsive.
  4. 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?


#2

Hi

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…)


#3

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.


#4

This is one more way, it has is its own downsides. I think it can be used if unresponsiveness is significant.


#5

Wait for ready is not guaranteed to work. Is there any way to figure-out visually if the app is responsive or not?

I have encountered something similar in SAP

  1. User clicks a button
  2. A new window pops-up after some time (5 secs or two minutes)
  3. User click a button in the new window but the button is not responsive
  4. The button become responsive but the flow is broken

In this case i have discovered that the button will be always responsive two seconds after its appearance. Therefore I used a

  1. Find Element (Button) with TimeoutMS set to two minutes
  2. Delay 2 secs
  3. Click (Button)

#7

Hi , could you tell me what is ProcessName and Responding?