windows-desktop-e2e
E2E testing for Windows native desktop apps (WPF, WinForms, Win32/MFC, Qt) using pywinauto and Windows UI Automation.
npx skills add mturac/everything-openai-codex --skill windows-desktop-e2e --agent codex
Same command for any agent — swap --agent for claude-code, cursor, copilot.
Weekly change comes from our own snapshots, not the repository page — it measures attention, not adoption.
What it does
Enables end-to-end tests for Windows desktop applications by leveraging pywinauto with the UI Automation backend. It covers multiple UI frameworks (WPF, WinForms, Win32/MFC, Qt) and provides a structured approach including a Page Object Model, test fixtures, and artifact management for diagnosing failures.
How it works
- Uses pywinauto (UIA backend) to interact with a running Windows desktop application, navigating via AutomationId, names, or class/indices.
- Provides a BasePage with methods to locate elements (by_id, by_name, by_class), wait helpers (wait_visible, wait_gone, wait_window, wait_until), and actions (click, type_text, get_text, screenshot).
- Defines login and page objects (LoginPage) that map UI controls to AutomationIds (e.g., usernameInput, passwordInput, btnLogin, lblError).
- Contains a pytest-based test harness (conftest.py) that launches the app via pywinauto Application with backend="uia", waits for the main window, and captures a failure screenshot. It includes a teardown that closes the window and terminates the process when done.
- Includes test structure guidance (Page Object Model) and a configuration module (config.py) for environment-driven paths and timeouts.
- Offers wait patterns and an artifact strategy (screenshots, optional screen recording, trace options) to aid debugging.
When to use it
- Writing or running E2E tests for a Windows native desktop application
- Setting up a desktop GUI test suite from scratch
- Diagnosing flaky or failing desktop automation tests
- Adding testability (AutomationId, accessible names) to an existing app
- Integrating desktop E2E into a CI/CD pipeline (GitHub Actions windows-latest)
What it can touch
- The agent uses tools: codex, copilot, cursor to implement tests and automation scripts.
- Primary interactions target UI elements via AutomationId, and may use Python code under the provided structure (base_page.py, login_page.py, conftest.py, config.py).
Caveats
- Requires Python 3.8+ and Windows, with pywinauto, pytest, pytest-html, Pillow, pytest-timeout installed.
- Qt 5.x may require a fallback path in certain type_text scenarios due to UIA ValuePattern limitations.
- CI environments should ensure Accessibility Insights is available for UI inspection, and QT_ACCESSIBILITY is enabled when needed.
- The approach discourages time.sleep in favor of wait and wait_until patterns to synchronize with the UI.
# Windows Desktop E2E Testing End-to-end testing for Windows native desktop applications using **pywinauto** backed by Windows UI Automation (UIA). Covers WPF, WinForms, Win32/MFC, and Qt (5.x / 6.x) — with Qt-specific guidance as a dedicated section. ## When to Activate - Writing or running E2E tests for a Windows native desktop application - Setting up a desktop GUI test suite from scratch - Diagnosing flaky or failing desktop automation tests - Adding testability (AutomationId, accessible names) to an existing app - Integrating desktop E2E into a CI/CD pipeline (GitHub Actions `windows-latest`) ### When NOT to Use - Web applications → use `e2e-testing` skill (Playwright) - Electron / CEF / WebView2 apps → the HTML layer needs browser automation, not UIA - Mobile apps → use platform-specific tools (UIAutomator, XCUITest) - Pure unit or integration tests that don't need a running GUI ## Core Concepts All Windows desktop automation relies on **UI Automation (UIA)**, a Windows-built-in accessibility API. Every supported framework exposes a tree of UIA elements with properties Codex can read and act on: ``` Your test (Python) └── pywinauto (UIA backend) └── Windows UI Automation API
- When to Activate
- When NOT to Use
- Core Concepts
- Setup & Prerequisites
- Testability Setup (by Framework)
- WPF
- WinForms
- Win32 / MFC
- Qt — see dedicated section below
- Page Object Model
- basepage.py
- loginpage.py
- conftest.py
- config.py
Python 3.8+, Windows only pip install pywinauto pytest pytest-html Pillow pytest-timeout Install ffmpeg and add to PATH: https://ffmpeg.org/download.html Include typed text in the JSONL log (DO NOT use on tests that type credentials/PII): pip install pyautogui Pillow opencv-python All tests pytest tests/ -v Smoke only pytest tests/ -m smoke -v Specific file
What does the windows-desktop-e2e skill do?
E2E testing for Windows native desktop apps (WPF, WinForms, Win32/MFC, Qt) using pywinauto and Windows UI Automation.
How do I install it?
Run `npx skills add mturac/everything-openai-codex --skill windows-desktop-e2e --agent claude-code` — it drops the skill into your project so the agent can pick it up. Swap the --agent value for codex, cursor or copilot if you use one of those.
Where does this skill come from?
From mturac/everything-openai-codex, a repository with 84 stars. We read it straight from the repository tree rather than a submitted listing, so what you see here is what is actually published.
Is a popular skill a good skill?
Not necessarily. Stars measure attention, not adoption — a repository can trend for a week and be abandoned. That is why we show the weekly change from our own snapshots next to the total, instead of a single flattering number.
