TylerH

How to wait until after MouseClicks have been completed

10 posts in this topic

I have a desktop healthcare application with no ControlIDs, and there's a list I need to scroll through and select multiple entries from. Below is my code for that section of the automation script. As you can see, I have a lot of MouseClick() and Sleep() functions. Two of the MouseClick() lines have many clicks, but these clicks are very slow, and for some reason AutoIt doesn't just know to wait until a MouseClick() has completed all its clicks before moving on, hence my sleep times of several seconds in a couple places.

Is there a way to have my script wait until the specified number of clicks have happened?

MouseClick("", 320, 239, 1, 1)
MouseClick("", 509, 185, 1, 1)
Sleep(100)
Send("IDWG GRP Income")
Sleep(100)
MouseClick("", 556, 330, 1, 1)
Sleep(100)
MouseClick("", 717, 328, 1, 1)
Send("{CTRLDOWN}")
MouseClick("", 536, 330, 1, 2)
Send("{CTRLUP}")
Sleep(100)
MouseClick("", 717, 328, 72, 1)
Sleep(8300)
Send("{CTRLDOWN}")
MouseClick("", 536, 330, 1, 2)
Send("{CTRLUP}")
Sleep(200)
MouseClick("", 717, 328, 23, 1)
Sleep(2700)
Send("{CTRLDOWN}")
MouseClick("", 536, 330, 1, 2)
Send("{CTRLUP}")
MouseClick("", 517, 366, 1, 2)
Sleep(200)

I should note that my script is completely functional. I tried MouseDown and MouseUp, and just setting Sleep() to the number of ms needed to go the distance on the list, but that produced inconsistent results across different machines (and even across different attempts on the same machine...).

Share this post


Link to post
Share on other sites



#2 ·  Posted (edited)

AutoIt always waits until the MouseClick has completed. But Autoit does not know how long it should wait until an action triggered by a mouseclick has ended.
Imagine you click on a button to load a web page. How should AutoIt know which action you triggered and when the page has loaded?

After the mouseclick you need to check that the triggered action has completed and then move on with your script.

BTW: Welcome to AutoIt and the forum!

Edited by water

My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2017-04-18 - Version 1.4.8.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX (NEW 2017-02-27 - Version 1.3.1.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2015-04-01 - Version 0.4.0.0) - Download - General Help & Support - Example Scripts
Excel - Example Scripts - Wiki
Word - Wiki
PowerPoint (2015-06-06 - Version 0.0.5.0) - Download - General Help & Support

Tutorials:
ADO - Wiki

 

Share this post


Link to post
Share on other sites

Thanks for the welcome. Hmm, I see what you mean; the mouse clicks do complete, but then the scrolling action is still going. Unfortunately I don't see a way to detect when the scrolling animation has completely scrolled down to the next item.

Share this post


Link to post
Share on other sites

Which makes automation thru mouse clicks a crap shoot...is there an api/script/batch interface to this app?

Kylomas


Forum Rules         Procedure for posting code

"I like pigs.  Dogs look up to us.  Cats look down on us.  Pigs treat us as equals."

- Sir Winston Churchill

Share this post


Link to post
Share on other sites

I'm not aware of an API or scripting interface for the application; if there is one, I don't have access to it. I've only been given access to the application temporarily in order to write an automation script for it.

Share this post


Link to post
Share on other sites

In this case we need more information. Example:

  • The name of the application
  • The output of the AutoIt Window Info Tool
  • A screen shot how the application looks like before and after the click

My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2017-04-18 - Version 1.4.8.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX (NEW 2017-02-27 - Version 1.3.1.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2015-04-01 - Version 0.4.0.0) - Download - General Help & Support - Example Scripts
Excel - Example Scripts - Wiki
Word - Wiki
PowerPoint (2015-06-06 - Version 0.0.5.0) - Download - General Help & Support

Tutorials:
ADO - Wiki

 

Share this post


Link to post
Share on other sites

#7 ·  Posted (edited)

The name of the application is PrimeSUITE by Greenway Health. Which tab do you need to see from the Info Tool (the Control info is largely blank, no matter where on the screen I hover, the ClassnameNN shows Internet Explorer_Server1 INSTANCE:1)? The application looks the exact same before and after the multi-mouse click, except the scroll bar is slightly lower down. I can't post a full screenshot because it's proprietary information and contains PHI. Here's what I can show you:

 

After:

after.jpg

Before:

before.jpg

Edited by TylerH

Share this post


Link to post
Share on other sites

You might be able to do this with the IE* UDF library.


If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.
Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag Gude
How to ask questions the smart way!

I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from.

Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays.  -  ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script.  -  Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label.  -  _FileGetProperty - Retrieve the properties of a file  -  SciTE Toolbar - A toolbar demo for use with the SciTE editor  -  GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI.  -   Latin Square password generator

Share this post


Link to post
Share on other sites

You might be able to do this with the IE* UDF library.

I will take a look at those functions in the Help File, thanks.

Share this post


Link to post
Share on other sites

That's why I was asking for more information. Your reply moved the discussion into a new direction ;)
Hopefully this leads to a solution for your problem :)


My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2017-04-18 - Version 1.4.8.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX (NEW 2017-02-27 - Version 1.3.1.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2015-04-01 - Version 0.4.0.0) - Download - General Help & Support - Example Scripts
Excel - Example Scripts - Wiki
Word - Wiki
PowerPoint (2015-06-06 - Version 0.0.5.0) - Download - General Help & Support

Tutorials:
ADO - Wiki

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now