Tool to perform UI Automation on Windows desktop applications using an underlying FlaUI wrapper.
Project description
flaui-uiautomation-wrapper
Pythonic, type-safe Windows UI automation — the full FlaUI API in Python.
FlaUI is a .NET library for UI automated testing of Windows desktop applications — Win32, WinForms, WPF, and Store apps — built on top of Microsoft's UI Automation technology. flaui-uiautomation-wrapper brings the complete FlaUI API to Python via Python.NET, so you get the full power of FlaUI without leaving the Python ecosystem.
Unlike existing Python integrations that are tied to a single test runner, this is a plug-and-play
wrapper that works with any Python framework — pytest,
Behave, TestPlan,
unittest, or your own tooling — with first-class IDE intellisense backed by Pydantic models.
Key Differentiators
- Complete feature parity — a 1:1 mapping of FlaUI's exposed C# API, not a thin subset.
- Type safety — every input/output is backed by Pydantic models for validation and IDE autocompletion.
- Any test framework — pytest, unittest, Behave, TestPlan, or none at all.
- Pythonic API — snake_case methods and Python-native types while preserving the C# structure.
Installation
Windows-only · Python 3.10–3.14. The required C# DLLs are bundled in the wheel — no separate driver binaries to manage.
pip install flaui-uiautomation-wrapper
uv add flaui-uiautomation-wrapper
Quick start
from flaui.lib.pythonnet_bridge import setup_pythonnet_bridge
# MUST run before importing any C#-backed modules
setup_pythonnet_bridge()
from flaui.lib.enums import UIAutomationTypes
from flaui.modules.automation import Automation
automation = Automation(UIAutomationTypes.UIA3)
main_window = automation.application.launch("notepad.exe").get_main_window(automation)
main_window.find_first_by_x_path("//Button[@Name='OK']").as_button().invoke()
Documentation
Full documentation lives at amruthvvkp.github.io/flaui-uiautomation-wrapper, including:
- Basics & Advanced guides (Initialize → Launch → Find → Interact, XPath, ConditionFactory, caching) with side-by-side Python/C# examples.
- API Reference auto-generated for every control and pattern.
- Examples for pytest, unittest, Behave, TestPlan, and Robot Framework.
- Contributing guides for development, testing, and porting C# tests.
Roadmap
This project is in active development toward its first major release. Track progress on the
v1.0.0 milestone and the
full ROADMAP.md, which also outlines post-v1 companion tooling (a record-and-generate
recorder, an MCP server, a pytest-flaui plugin, and FlaUI agent skills).
Have an idea or feature request? Join the GitHub Discussions.
Inspirations & Credits
- FlaUI — the C# library this project wraps; its core logic and test applications are the foundation of this wrapper.
- robotframework-flaui (GDATA) — the prior-art Python integration for FlaUI that influenced this project's direction.
- Python.NET — the interop bridge that makes calling FlaUI from Python possible.
- Playwright /
pytest-playwrightand FlaUIRecorder — inspirations for the planned recorder and pytest tooling.
Contributing
Contributions are welcome! See docs/contributing.md for the development workflow, coding standards, and testing guidelines.
License
Licensed under the LGPL-3.0-or-later.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file flaui_uiautomation_wrapper-1.0.0b1.tar.gz.
File metadata
- Download URL: flaui_uiautomation_wrapper-1.0.0b1.tar.gz
- Upload date:
- Size: 2.2 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
05a3ed69ca2d701ba8593b2c4261522d294528dd5bfa3e43ca2f8c9b42aafe10
|
|
| MD5 |
816c2ea67a9d3e12d90af427deffc829
|
|
| BLAKE2b-256 |
102a0942c75b5f5814bc57443c683f908f41dfff43c80a4d135312fb1301cc30
|
File details
Details for the file flaui_uiautomation_wrapper-1.0.0b1-py3-none-any.whl.
File metadata
- Download URL: flaui_uiautomation_wrapper-1.0.0b1-py3-none-any.whl
- Upload date:
- Size: 381.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d778cca6d81737380017262f6523ebfd47664d2c8af47813aad3c4625e3aa9fc
|
|
| MD5 |
aa9f62caed94f4e727ba9d2749cc0ac6
|
|
| BLAKE2b-256 |
db569182cafe1e7562b574c647267ac3978e83be3199aa7d9e20949af4873a6b
|