Ann: pywinauto 0.1.1 (initial release) released

Mark Mc Mahon mark.m.mcmahon at gmail.com
Thu Jan 12 23:07:07 CET 2006


I'm pleased to announce the first public release of pywinauto 0.1.1

pywinauto is a set of open-source (LGPL) modules for using Python as a GUI
automation 'driver' for Windows NT based Operating Systems (NT/W2K/XP).

SourceForge project page:
http://sourceforge.net/projects/pywinauto

Download from SourceForge
http://prdownloads.sourceforge.net/pywinauto/pywinauto-0.1.1.zip?download

pywinauto-users mailing list
http://lists.sourceforge.net/lists/listinfo/pywinauto-users


pywinauto was nudged into existence by the creation of Watsup
(http://www.tizmoi.net/watsup/intro.html) a similar tool based on
Simon Brunning's (http://www.brunningonline.net/simon/blog/index.html)
winGuiAuto.py.

There are many similar tools that do this (see:
http://tejasconsulting.com/open-testware/feature/gui-test-driver-survey.html)
So how is pywinauto different?
It is still in early stages of development (but is about as functional as
many of the other automation tools).

I think I have designed pywinauto in such a way that it should be easy
to add new actions for Controls. For example imagine

# 10th item on 1st level, 21st item on 2nd, 45th on 3rd
dlg.TreeView.Select("#10\#21\#45")

# Or Possibly (or even both!)
TreeView.Select(path_re = "Desktop\\.*\\.*c:\\Temp")

It supports Typing accented/Unicode text (by sending them to the text
area directly - rather then using SendKeys which does not appear to
handle extended/Unicode text well.

It does not require previous analysis of the dialogs to be automated or
for 'reference' information to be saved.

I have also kept in mind that to have language neutral scripts is more
or less impossible - but I am planning to enable a flag that would enable
lookup in previously saved reference information (saved during development
of the script probably) that should enable scripts to run unmodified.
(At least that's the idea - though there are cases where sorting - e.g.
listboxes - might make that impossible).

There is currently no documentation and the examples do double duty as
tests. I am hoping to improve this. Any interest in my first publicly
release code would help my ego greatly :-)


Requirements:
ctypes       http://starship.python.net/crew/theller/ctypes/
Sendkeys     http://www.rutherfurd.net/python/sendkeys/index.html
(Optional)   PIL          http://www.pythonware.com/products/pil/index.htm
(Optional)   elementtree  http://effbot.org/downloads/


Very simple test of Notepad automation (notice no time.sleep() ;-)

----------------------- :< -----------------------
import application

app = application.Application()
app._start(ur"c:\windows\system32\notepad.exe")

app.Notepad.MenuSelect("File->PageSetup")

# ----- Page Setup Dialog ----
# Select the 'Letter' combobox item
app.PageSetupDlg.ComboBox1.Select("Letter")

# Now close the dialog
app.PageSetupDlg.Ok.Click ()

# type some text
app.Notepad.Edit.SetText(u"Typíng söme tèxt\r\n2nd lïne")

# Close Notepad (and don't save)
app.Notepad.MenuSelect("File->Exit")
app.Notepad.No.Click ()
----------------------- :< -----------------------

pywinauto makes significant use of ctypes, I would like to extend my thanks
to Thomas Heller and the whole Python community for producing such
intuitive tools!

Thank you
   Mark

--------------------------------------------
Mark Mc Mahon
24 Plummer Rd., Manchester, NH 03110, USA

<P><A HREF="http://sourceforge.net/projects/pywinauto">pywinauto 0.1.1</A>
Simple Windows GUI automation with Python. (12-Jan-06)


More information about the Python-announce-list mailing list