Urban75 Home About Offline BrixtonBuzz Contact

Automating GUI interaction

fractionMan

Custom Title
Put simply I have a program that wants to interact with another via clicking buttons in a (multi) windowed application. It also needs to scrape data from that application to know what to click.

I've heard of autoit but not looked super deeply at it. Anyone have any experience of this?
 
If you own the code then you're basically looking at automated UI unit testing, for which there are various frameworks.

If you don't, and it's a prebuilt app, then things probably get a bit trickier as it has to try and kludge integration.

So, which? If it's your code, what language? If it's not, any idea what it was built in? What does it run on - Windows?
 
If you own the code then you're basically looking at automated UI unit testing, for which there are various frameworks.

If you don't, and it's a prebuilt app, then things probably get a bit trickier as it has to try and kludge integration.

So, which? If it's your code, what language? If it's not, any idea what it was built in? What does it run on - Windows?

It's not my code. It's a 'random' windows application, which could be flash, java or native.

My code is written in java, which doesn't exactly help. One thing I can make it do though is expose all the logic through a web server, which makes using a GUI interaction framework of some sort easier. I can script that, then make calls to the webserver to decide which button to click etc.
 
This doesn't answer your question in any way, but it's cool so I'm putting it here.

The software I use at work, Revit, logs every single UI interaction in a .journal file. Every single click, drag, button press etc. The journal file's main use is for submitting alongside bug reports or tech support for a corrupted project file. But you can also use it to replay your actions. It means if the app crashes without saving, you can just drop the .journal file onto the app's icon and it replays all your work at lightning spped. It's hypnotic to watch - Zooming in and out, launching new views, creating objects, deleting things. All your trial and error, but at 100x speed.
 
One of the real problems I've got is scanning a graphical app and working out where the bloody elements I need to click are. That plus scanning it for the data I need to make a descision.

It's a bloody nightmare which is why I've not done it yet. Anything that makes it easier would be gold.
 
That is a difficult problem then - it's basically OCR and pattern recognition but in a pretty dynamic environment. Autoit does look like the established tool, but I'd never heard of it before.

Java integration is the least of your worries - for example you can compile Autoit into an executable and run that from Java.
 
Back
Top Bottom