ANN: pywinauto 0.3.0 released - now localization proof
Mark Mc Mahon
mark.m.mcmahon at gmail.com
Mon Mar 20 22:04:19 CET 2006
Hi,
The 0.3.0 release of pywinauto is now available.
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://sourceforge.net/project/showfiles.php?group_id=157379
Here is the list of changes from 0.2.5:
0.3.0 Added Application data - now useful for localization testing
------------------------------------------------------------------
20-Mar-2006
* Added automatic Application data collection which can be used when
running the same test on a different spoken language version. Support
is still preliminary and is expected to change. Please treat as early
Alpha.
If you have a different language version of Windows then you can try
this out by running the notepad_fast.py example with the langauge
argument e.g. ::
examples\notepad_fast.py language
This will load the application data from the supplied file
notepad_fast.pkl and use it for finding the right menu items and
controls to select.
* Test implementation to make it easier to start using an application.
Previously you needed to write code like ::
app = Application().connect_(title = 'Find')
app.Find.Close.Click()
app.NotePad.MenuSelect("File->Exit")
1st change was to implement static methods ``start()`` and
``connect()``. These methods return a new Application instance
so the above code becomes::
app = Application.connect(title = 'Find')
app.Find.Close.Click()
app.NotePad.MenuSelect("File->Exit")
I also wanted to make it easier to start working with a simple
application - that may or may not have only one dialog. To make this
situation easier I made ``window_()`` not throw if the application has not
been ``start()ed`` or ``connect()ed`` first. This leads to simpler code
like::
app = Application()
app.Find.Close.Click()
app.NotePad.MenuSelect("File->Exit")
What happens here is that when you execute any of Application.window_(),
Application.__getattr__() or Application.__getitem__() when the
application hasn't been connected or started. It looks for the window
that best matches your specification and connects the application to
that process.
This is extra functionality - existing connect_() and
start_() methods still exist
* Fixed HwndWrapper.SetFocus() so that it would work even if the window
was not in the foreground. (it now makes the window foreground as well
as giving it focus). This overcomes a restriction in Windows where
you can only change the foreground window if you own the foreground
window.
* Changed some 2.4'isms that an anonymous commenter left on my blog :-)
with these changes pywinauto should run on Python 2.3 (though I haven't
done extensive testing).
* Commented out controls.common_controls.TabControlWrapper.GetTabState()
and TabStates() as these did not seem to be returning valid values anyway.
* Fixed documentation issues were parts of the documentation were not
getting generated to the HTML files.
* Fixed issue where MenuSelect would sometimes not work as expected.
Some Menu actions require that the window that owns the menu be active.
Added a call to SetFocus() before selecting a menu item to ensure that
the window was active.
* Fixed Bug 1452832 where clipboard was not closed in clipboard.GetData()
* Added more unit tests now up to 248 from 207
If you want to follow this project then please sign up to the mailing list:
https://lists.sourceforge.net/mailman/listinfo/pywinauto-users
Thanks
Mark
--------------------------------------------
Mark Mc Mahon
Manchester, NH 03110, USA
<P><A HREF="http://sourceforge.net/projects/pywinauto">pywinauto 0.3.0</A>
Simple Windows GUI automation with Python. (20-Mar-06)
More information about the Python-announce-list
mailing list