MS UI Automation support, PEP-8 compliance, Win32 hooks and more

@vasily-v-ryabov vasily-v-ryabov released this Oct 31, 2016 · 105 commits to master since this release

  • This big release introduces MS UI Automation (UIA) support (beta). Feedback is very welcome!
    • Just start from app = Application(backend='uia').start('your_app.exe').
    • Default backend is still 'win32' if nothing is specified.
    • Supported WPF controls: Menu, Button/CheckBox/RadioButton, ComboBox, Edit,
      Tab control, List (ListView), DataGrid, Tree, Toolbar, Tooltip, Slider.
    • It uses native UIAutomationCore.dll through comtypes (like UiaComWrapper for .NET but in CPython).
    • Despite code coverage is ~95% consider it as beta quality. Performance is slower than for "win32".
  • Documentation is built continuously now on ReadTheDocs. See also improved
    Getting Started Guide.
  • Modules keyboard and mouse can be used out of any window context now. And they work on Linux as well!
  • New multi-backend architecture makes implementation of new platforms support
    easier in the future. The minimal set for new backend includes its name and
    two classes inherited from ElementInfo and from BaseWrapper. New backend
    must be registered by function backend.register(). Linux AT SPI and Apple Accessibility API are in the long term plans.
  • Code style is much closer to PEP8: i.e. click_input should be used
    instead of ClickInput.
  • Initial implementation of the win32_hooks module. Keyboard and mouse event
    handlers can be registered in the system. It was inspired by pyHook, pyhk,
    pyhooked and similar modules, but re-written from scratch. Thanks for
    Max Samokhvalov! The fork (at some moment) of the win32_hooks module is
    used in pyhooked 0.8 by Ethan Smith.
  • A lot of small improvements are not counted here.

Downloads