TODO - pywinauto/pywinauto GitHub Wiki
Steps to make pywinauto true cross-platform
- Remove Win32 dependencies from classes
Application
andWindowSpecification
(or make these dependencies platform-optional). - Implement AT-SPI support on Linux (using native
libatspi.so
andctypes
). - Implement MacOS-specific
mouse.py
andkeyboard.py
. - Implement Apple Accessibility API support on MacOS.
pywinauto 0.6.x releases
-
UI Automation API support (WPF, WinForms, Qt, browsers). Available backends:
"win32" (default) and "uia"
.- Rename "native" backend to "win32", add more tests for backend.py.
-
Application-specific backend switching.
app = Application(backend="uia").start('WpfApplication1.exe')
-
Better PEP-8 compliance.
-
Documentation issues:
- Debugging tips and tricks (print_control_identifiers, wrapper_object etc.).
- Better index page, supported controls/frameworks, more detailed main example.
- Explain 2-level (multilevel?)
WindowSpecification
->wrappers concept (issue 120). - Enrich the docs for menu (issue 130).
- Explain that native menu item is not a wrapper or WindowSpecification object.
Control Types to Patterns matrix at MSDN.
Implement wrappers covering all the control types:
- Menu, MenuBar, MenuItem
- Button, CheckBox, RadioButton
- ComboBox (except multi-selection)
- Edit
- Tab, TabItem
- Slider
- List, Header, DataItem, ListItem
- Tree, TreeItem
- ToolBar
- Table
- ToolTip
- StatusBar, ProgressBar
- HeaderItem
- Document
- Window (a la DialogWrapper)
- Calendar, Group, Hyperlink, SemanticZoom, ScrollBar, Thumb (?), SplitButton
- TitleBar, AppBar, Spinner
- Text, Image, Pane, Custom (?)
Use all the control patterns
- Dock
- ExpandCollapse
- GridItem
- Grid
- Invoke
- ItemContainer
- LegacyIAccessible (?)
- MulipleView
- RangeValue
- ScrollItem
- Scroll
- SelectionItem
- Selection
- SynchronizedInput
- TableItem
- Table
- Text
- Toggle
- VirtualizedItem
- Value
- Window
Windows 8 and later
- Annotation
- Drag
- Drop
- ObjectModel
- Spreadsheet
- SpreadsheetItem
- Styles
- TextChild
- TextV2
- TransformV2
Windows 8.1 and later
- TextEdit
Windows 10 and later
- CustomNavigation
Future big TODOs
- Review localization testing functionality (matching history) and write examples. useful link 1
- Review optional
tests
sub-package and describe it in the docs/blog; maybe add some more tests. - [80% done] Write
hooks.py
module and probably relatedrecorder.py
. - Java Swing/AWT support (probably using JPype).