ANN: pywinauto 0.3.0 released - now localization proof

Mark Mc Mahon mark.m.mcmahon at
Mon Mar 20 22:04:19 CET 2006


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:

Download from SourceForge

Here is the list of changes from 0.2.5:

0.3.0 Added Application data - now useful for localization testing

    * 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

      If you have a different language version of Windows then you can try
      this out by running the example with the langauge
      argument e.g. ::

        examples\ 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')

      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')

      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

        app = Application()
	  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

    * 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:


Mark Mc Mahon
Manchester, NH 03110, USA

<P><A HREF="">pywinauto 0.3.0</A>
Simple Windows GUI automation with Python. (20-Mar-06)

More information about the Python-announce-list mailing list