ANN: pywinauto 0.3.0 released - now localization proof
mark.m.mcmahon at gmail.com
mark.m.mcmahon at gmail.com
Mon Mar 20 16:12:20 EST 2006
ANN: pywinauto 0.3.0 released - now localization proof
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
More information about the Python-list
mailing list