uiautomation
Python UIAutomation for Windows
Decision gist · record as of 2026-08-14
Yes, if you need to automate Windows UI testing or control interaction. The package is actively maintained, has low install friction, and covers a broad range of Windows application types. Install only on Windows 7 or later, run as administrator, and avoid Python 3.7.6 and 3.8.1. No known security vulnerabilities.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Must run Python as administrator on Windows 7 or higher; otherwise control enumeration and information retrieval may fail.
- Windows 7 or later required.
- Low install friction with a single runtime dependency (comtypes).
License · maintenance · safety
Apache 2.0 (permissive) — Apache 2.0 permissive license allows free copying, distribution, and use with minimal restrictions, making it suitable for both open-source and proprietary projects.
last release 2025-08-05 (374 days) · last repo commit 2026-06-02 · 3,550 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 289,377 downloads/mo, #8,001 on PyPI
Alternatives
Verify before relying
pip install uiautomation
import uiautomation as auto
# Find and interact with a window
window = auto.WindowControl(searchDepth=1, ClassName='Notepad')
edit = window.EditControl()
edit.SendKeys('Hello World')- Whether partial Qt support covers the specific Qt versions or frameworks in use
- Whether Electron apps require the --force-renderer-accessibility flag to be set externally or if the package handles it
- Performance characteristics when traversing large control trees with many nested controls
What it is and what it does
uiautomation is a Python wrapper around the Microsoft UIAutomation API for Windows, allowing developers to programmatically find, inspect, and interact with UI controls in Windows applications. It works with applications that implement UIAutomation providers—including MFC, Windows Forms, WPF, Modern UI, Qt (partially), Firefox, Chrome, and Electron-based apps—enabling automated testing, control manipulation, and UI traversal.
The package provides a control tree model where you search for UI elements by their properties (name, control type, depth) and then interact with them via patterns (value, invoke, etc.). It includes a command-line tool (automation.py) for exploring the control hierarchy and a Python API for scripting. The main constraint is that it requires administrator privileges on Windows 7 and higher, and certain Python versions (3.7.6, 3.8.1) are incompatible due to comtypes issues.
Use it for
- Automated testing of Windows desktop applications by simulating user interactions like clicks, text input, and menu navigation
- Building test automation frameworks that verify UI behavior across MFC, WPF, and Windows Forms applications
- Creating accessibility inspection tools to audit UI control properties and supported interaction patterns
- Scripting repetitive UI tasks in legacy Windows applications that lack APIs or command-line interfaces
- Automating data entry workflows across multiple Windows applications by chaining control searches and interactions
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you need to automate Windows UI testing or control interaction.
The package is actively maintained, has low install friction, and covers a broad range of Windows application types. Install only on Windows 7 or later, run as administrator, and avoid Python 3.7.6 and 3.8.1. No known security vulnerabilities.
Install
uiautomation on PyPI
Before you install
Low install friction with a single runtime dependency (comtypes). Actively maintained with recent commits and a substantial user base. Note: avoid Python 3.7.6 and 3.8.1 due to comtypes incompatibility; use an earlier or later version instead.
Must run Python as administrator on Windows 7 or higher; otherwise control enumeration and information retrieval may fail. Windows 7 or later required.
License in practice
Apache 2.0 permissive license allows free copying, distribution, and use with minimal restrictions, making it suitable for both open-source and proprietary projects.
Quickstart
pip install uiautomation
import uiautomation as auto
# Find and interact with a window
window = auto.WindowControl(searchDepth=1, ClassName='Notepad')
edit = window.EditControl()
edit.SendKeys('Hello World')
Verify before relying
- Whether partial Qt support covers the specific Qt versions or frameworks in use
- Whether Electron apps require the --force-renderer-accessibility flag to be set externally or if the package handles it
- Performance characteristics when traversing large control trees with many nested controls
Package facts
| License | Apache 2.0 permissive |
| Python support | Not specified |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 1 packagecomtypes |
| Maintenance | Actively maintained 374 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 289,377 / month, #8,001 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.4Programming Language :: Python :: 3.5Programming Language :: Python :: 3.6Programming Language :: Python :: 3.7Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9 |
Evidence: uiautomation-2.0.29-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “windows ui automation”
- uiautomationAutomates Windows UI controls and windows by interacting with the…
- pywinautoAutomate Microsoft Windows GUI interactions by sending mouse and…
- robotframework-whitelibraryWhiteLibrary automates Windows GUI testing for Robot Framework by…
Give your agent the search over MCP, or paste the wish link into any chat.
More Testing packages
Pluggy provides a plugin system that lets you define hook specifications and register implementations to be called in sequence, enabling extensible Python applications without tight coupling.
Install it if you're building an extensible application or framework.
pytest is a testing framework that lets you write test functions using plain assert statements and automatically discovers and runs them, with detailed failure reporting.
virtualenv creates isolated Python environments where packages can be installed independently without affecting the system Python or other projects.
Coverage.py measures which lines of Python code are executed during test runs, reporting coverage percentages and identifying untested code paths.
Install it if you want to measure test completeness or enforce coverage thresholds in your project.
pytest-asyncio is a pytest plugin that enables writing and running async test functions using the asyncio library, allowing developers to await code directly within test cases.
Install it if you write tests for any asyncio-based code.
A pytest plugin that generates test reports in Common Test Report Format (CTRF) as JSON, compatible with pytest-xdist and pytest-playwright for distributed and browser-based testing.
Install it if you need CTRF-formatted test output for CI/CD integration or cross-tool reporting.
See also pywinauto · PyAutoIt · uiautomator · win-precise-time · Pymem · robotframework-whitelibrary · PyAutoGUI · wmctrl · PyGetWindow · facebook-wda