General Developer Tools

Windows Application Driver

Windows Application Driver is a Microsoft service that brings Selenium-style UI test automation to desktop software, letting QA teams drive UWP, WPF, WinForms, and classic Win32 interfaces with familiar Appium client libraries.

Visit official website ↗
✓ Software download·Open Source·Updated October 12, 2026
DeveloperMicrosoft Corporation
LicenseOpen Source
File size3.8 MB
Languageen-US
Downloads29

What Windows Application Driver Does for Desktop UI Testing

Windows Application Driver is a Microsoft service that lets QA teams and developers automate desktop software the same way they automate websites: connect a client to a running driver, locate controls, and assert on what the interface does. The service speaks a Selenium-compatible WebDriver protocol, so existing Appium client libraries in C#, Java, Python, or JavaScript work with little adjustment. In a typical session, Windows Application Driver is started on the test machine, then you open a session against an app by its identifier or executable path and query elements by automation ID, name, class, or XPath before clicking, typing, or reading values. That workflow makes it practical to build repeatable regression suites for interfaces that were never designed for testing.

Because it relies on the operating system's accessibility layer rather than hooks inside the binary, the driver can reach controls in packaged and classic desktop software alike, including legacy forms that predate modern frameworks. Teams usually pair it with a test runner such as NUnit, MSTest, or JUnit and with an inspection tool to capture stable automation properties before writing selectors. The same scripts can run locally, on a remote machine, or through a grid for parallel execution in a build pipeline. If your release process also involves hand-launching or packaging a desktop client, the Windows App reference covers that side of the workflow.

Benefits of Using Windows Application Driver

Benefits of using Windows Application Driver start with coverage: the same test suite can drive packaged apps, classic Win32 programs, WinForms, and WPF windows, so organizations stop maintaining a different automation stack for every era of their codebase. Because the driver exposes a standard WebDriver surface, testers reuse skills, page-object patterns, and reporting tools they already know from web automation instead of learning a proprietary scripting language. Selectors built on accessibility properties tend to survive cosmetic redesigns better than screen coordinates or image matching, which reduces flaky failures after a UI refresh. Windows Application Driver can also spread sessions across a grid or a remote machine, so long suites finish sooner and integrate cleanly with continuous integration. Finally, the open-source licence and public issue tracker let teams inspect or extend the code themselves when an uncommon control type needs attention.

Windows Application Driver features

Key capabilities and highlights.

Feature 1

Selenium-Compatible WebDriver Service

The Windows Application Driver runs as a local service that accepts standard WebDriver commands, so an Appium client in C#, Java, Python, or JavaScript can connect without a proprietary protocol or custom SDK. Teams keep their existing fixtures, assertions, and reporting, then point them at desktop windows instead of browser pages, which shortens the learning curve considerably for anyone who already tests web interfaces.

Feature 2

Support Across Desktop App Frameworks

Automation reaches Universal Windows Platform apps, Windows Presentation Foundation windows, Windows Forms dialogs, and classic Win32 software. Windows Application Driver decides how to reach each target from the session you request, so a single harness can cover products built across decades of Microsoft UI frameworks rather than forcing separate tools for new and legacy code.

Feature 3

Flexible Element Locators

Controls can be found by automation ID, name, class name, tag name, or XPath, so you pick whichever property stays stable as the interface evolves. Because Windows Application Driver reads the accessibility tree rather than pixel positions, a well-chosen locator keeps working after a colour change or a window resize that would break coordinate-based or image-matching scripts.

Feature 4

Desktop Root Session for Legacy Software

A desktop session attaches automation to the whole desktop instead of a single packaged app, which gives testers a route into older programs that cannot be launched by an application identifier. This mode is useful when Windows Application Driver has to interact with long-lived Win32 tools, system dialogs, or windows whose ownership changes during a test run.

Feature 5

UI Recorder for Script Generation

The bundled UI Recorder watches the interactions you perform, records the events, and generates XPath queries together with C# code as you go. It is the quickest way to bootstrap a suite against an unfamiliar screen, and because Windows Application Driver returns standard element references, the recorded output slots straight into an existing page-object model that you can refine by hand afterwards.

Feature 6

Input Simulation Beyond the Mouse

Sessions can send mouse clicks, keyboard strokes, touch gestures, and pen input to the application under test, which matters for ink, drag, and multi-step gesture scenarios that simple click-and-type automation misses. Testers working with Windows Application Driver on pen-enabled or tablet hardware can therefore script input the way a real user would deliver it.

Feature 7

Remote Machines and Selenium Grid

Scripts can target the service running on another machine or route through a Selenium Grid, so a regression suite spreads across several test hosts instead of queueing behind one desktop. Windows Application Driver keeps the same session commands in either arrangement, which means switching from a local run to a distributed one rarely requires script changes.

Feature 8

Continuous Integration Friendly

Published guidance shows how to start the service, launch tests, and collect results on a build agent, so desktop UI checks can gate a release alongside unit tests. Teams that adopt Windows Application Driver in a pipeline catch interface regressions before shipping and keep the manual smoke pass for exploratory work instead of routine confirmation.

Old versions

Browse historical releases and previous builds.

No old versions have been added yet.

Frequently asked questions

Common questions about Windows Application Driver.

Which kinds of desktop applications can Windows Application Driver automate?

It supports Universal Windows Platform apps, Windows Presentation Foundation, Windows Forms, and classic Win32 programs. Windows Application Driver can launch a packaged app through its application identifier, while other software is usually started by executable path or automated through a desktop session.

Do I need Appium to use it?

No, but most teams do. The service implements a Selenium-compatible WebDriver interface, so any client that can speak that protocol works. Using an official Appium client library is the common path because it handles session setup and element commands for you.

Does it require Developer Mode on the test machine?

The official setup steps include enabling Developer Mode in Windows settings before running the driver. This applies to the machine where the application under test is installed and where automation will execute.

Which programming languages can I write tests in?

The protocol is language-neutral, so the practical answer is whatever your chosen Appium client supports, including C#, Java, Python, and JavaScript. The project's samples and tests are written in C#, which makes them a useful reference when starting out.

How do I find reliable locators for controls?

Inspect the application's accessibility properties first and prefer automation IDs or names over coordinates. The bundled UI Recorder can also watch your interactions and produce XPath queries and C# code, which is helpful when mapping an unfamiliar screen.

Can tests run on a build server instead of a local desktop?

Yes. Windows Application Driver can be started on a remote machine and addressed over the network, and it can be registered with a Selenium Grid. Microsoft publishes pipeline guidance for running desktop UI tests on a build agent.

Is it free to use?

It is an open-source Microsoft project released under the MIT licence, so it is free to download, run, and modify. The public issue tracker is where feature requests and bug reports are collected.

Why do some element lookups fail even though the control is visible on screen?

The driver only sees what the accessibility tree exposes. Controls that are custom-drawn, hidden behind a different window, or missing automation properties cannot be located by ID or name, so you may need an XPath based on parent structure or a desktop-level session instead.

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *

Software download

Download Windows Application Driver

Windows Application Driver is a Microsoft service that brings Selenium-style UI test automation to desktop software, letting QA teams drive UWP, WPF, WinForms, and classic Win32 interfaces with familiar Appium client libraries.