Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Windows Desktop Applications Test Automation in WinAppDriver
Rating: 4.3 out of 5(571 ratings)
2,648 students

Windows Desktop Applications Test Automation in WinAppDriver

Windows Application Driver Automation Testing, Appium in C# dotnet, Beginner End-to-End Desktop Testing Tutorial
Created byNaeem Akram
Last updated 6/2025
English

What you'll learn

  • Automated Testing & UI Automation with Appium, WinAppDriver in C# .Net on Windows 10
  • Desktop automation for RPA and functional testing of Windows/WinForms applications with Appium WinAppDriver in C# .Net, Visual Studio
  • Windows Automation Testing in Appium and WinAppDriver
  • Windows Desktop Application Automation
  • WinAppDriver UI Recorder Download, and Usage

Course content

10 sections79 lectures4h 50m total length
  • Appium WinAppDriver Desktop Automation Testing with , C# .Net, Visual Studio4:34

    Welcome to my course about UI automation and automated functional testing using WinAppDriver and C#.

    In this course you will learn how to perform automated testing of all sorts of Windows applications.

    My course is going to be helpful for both experienced professionals and newbies.

    Prior to winappdriver or Windows Application Driver Microsoft Coded UI was the main UI automation tool sold by Microsoft.

    The Coded UI is now deprecated and Microsoft is pushing ahead with WinAppDriver which is a free tool.

    WinAppDriver is clearly the future of UI automation on Microsoft platform.

    I am Naeem Akram Malik, I’ve been working as an Automation Engineer since 2009.

    I’ve used many automated testing tools during the past decade.

    This list includes CodedUI, Selenium, Postman, and many others.


    The course is neatly divided in multiple sections.

    All sections have a section introduction video.

    All section introduction videos are available as a free preview, you may check them out after this video.

    Let me brief you about various sections of this course so that you know what to expect. .

    In the first section, I’ll show you what tools do you need to install for creating scripts using WInAppDriver and C# .Net.

    Everything from Visual Studio to WinAppDriver.

    Right after installations, we’ll get down to scripting.

    I’ll show you how to get the title of an application, how to maximize a window, how to take screenshots and how to close an application.

    You will be playing with UI automation scripts before the end of this section.

    It will be really quick, trust me.

    The second section will introduce you to WinAppDriver UI Recorder.

    We’ll download the WAD UI recorder I’ll show you how to use it for finding various properties of UI elements.

    This information will be used for clicking buttons, reading text values from data fields and typing text.

    I’ll also show you how to use WebDriverWait in Windows applications to increase script reliability.

    The next section will be dedicated to Visual Studio unit testing framework which is also known as MS Test.

    I’ll show you the test explorer window and how test results are displayed when tests are executed.

    I’ll also show you the lifecycle of an automated test.

    In the next section I’ll show you how to combine MSTest with WinAppDriver for automated Ui testing.

    I’ll show you how to perform a right click and select an item from the context menu and how to take a screenshot of entire desktop.

    In the next section I’ll show you how to perform data driven testing to test same scenario with different data.

    The last section will be dedicated to testing WinForms applications.

    I’ll show you how to manipulate the most common UI controls like checkboxes and radio buttons.

    More importantly I’ll show you how to handle combo boxes, menu items, sub menu items, tree views, and data grids.

    I am a long time test automation engineer myself, that’s why my course is jam packed with practically useful information.


  • Section Intro - Tool Installation for Appium WinAppDriver Tutorial on Windows2:08

    In the first section of this course we’re going to setup our development machine to create programs using WinAppDriver.

    We’ll start by enabling Windows 10 DEVELOPER MODE

    Then we’ll install Visual Studio Community Edition.

    After that Node.JS and Appium.

    Then we’ll take a brief look at the WinAppDriver GitHub repository.

    We’ll download and install Windows Application Driver.

    After I’ll show you how to create a new C# solution in Visual Studio and add a reference to Appium to communicate with WinAppDriver for performing various UI automation tasks.

    After this I’ll show you how to launch a legacy win32 application using WinAppDriver.

    We’ll use Notepad as an example.

    I’ll show HOW to do some cool stuff to an application with WinAppDriver, I mean

    how to retrieve application title

    how to maximize application window

    how to take a screenshot of the application window

    how to close the application.

    All of this will happen real quick, so buckle up for the ride.



  • Enable Windows 10 Developer Mode, tool installation overview for WinAppDriver2:40

    In this video I am going to provide you an overview of the prerequisites of using Windows Application Driver.

    I’ll also talk about tool installations needed for developing an automated test with Windows Application Driver.

    We will also enable the Windows 10 developer mode in this section.

    Windows Application Driver is also known as WinAppDriver.

    Windows 10 is a mandatory requirement for running WinAppDriver.

    WinApp Driver is based on Appium.

    We will need to install Node.js to run Appium.

    Windows Application Driver conforms to the standard WebDriver Specification and implements implements only the functionality specified in WebDriver specifications.

    For writing C# .Net scripts, we will install Visual Studio Community Edition.

    Your UI automation scripts will use http to communicate to an instance of a WinAppDriver.


    WinAppDriver can be run in Windows 10 developer mode only. Let’s enable it before proceeding.

    I’ll click the start button and click the settings icon

    In the find textbox I’ll type “Developer” and hit enter


    On the next screen, I’ll select the radio button “Developer Mode” and click the “Apply” button right underneath it.

    That’s it, in the next video we’ll install Visual Studio .Net and other tools such as Node.js.


  • How to Install Visual Studio Community Edition and C# .Net for Test Automation2:37

    The first thing you need to install is a version of Microsoft Visual Studio IDE.

    We will need the visual studio to write scripts in C#.Net programing language,, which we will use in this course.

    IDE means integrated development environment.

    Microsoft VS community edition is a free set of software development tools

    You may use a higher version of Visual Studio if you have the license.

    Otherwise, the Visual Studio community edition is sufficient for this course.



    Visual Studio Community edition can be downloaded from the URL shown on the screen: https://visualstudio.microsoft.com/vs/community/

    Let me show you how.

    Once you download the VS community edition setup, run it and make sure you select the following options in the setup.

    .Net desktop development

    Nuget package manager

    Testing tools

    Windows API


    After installing Visual Studio, you’ll need to install Node.js and Appium.


    Node.js is a popular platform for building server-side applications. It is particularly useful for automation tasks, as it allows developers to write JavaScript code that can run outside a web browser. With Node.js, you can automate tasks like file handling, data processing, and network communication. This makes it a valuable tool for developers who want to streamline their workflows and reduce the manual work they need. Whether you are building a web application, a command-line tool, or a complex system, Node.js can help you automate many of the tasks required to get the job done.


  • How to Install Node.Js and Appium on Windows 10 for WinAppDriver Tutorial1:49
  • How to Install Appium WinAppDriver on Windows 10 for UI Automation3:08

    How to download WinAppDriver from the Git Repository and install it. Windows Application Driver is the driver which works with the Appium client package to perform various operations on Windows application UI elements.

    WinAppDriver is a tool used for automating Windows applications. It allows developers to test their applications by creating automated UI tests. This helps to ensure that the application is functioning properly and provides a high-quality user experience. WinAppDriver is an essential tool for developers who want to create robust and reliable applications.

  • Visual Studio Project setup, launching an application with WinAppDriver & Appium8:39

    In this video we are going to create a new solution in Visual Studio.

    It will be our hello world of test automation.

    We will add a reference to the Appium API.

    I am show you how to launch the legacy application Notepad using WinAppDriver.

    So,let me Open Visual Studio.

    Click "Create a new project"

    I will Select “Console App (.Net Framework)” from the new project dialog.

    Please note that this is different from Console App .Net core.

    Click Next button.

    I’ll change the name to “RunNotepad”, leave everything else as it is and click the “Create” button.

    Once the new project is created, expand the Solution Explorer.

    Right click the references and select “Manage Nuget Packages”.

    Click the “Browse” tab and search for Appium.WebDriver

    We’re going to install this by clicking “Install” button.

    Click OK on preview changes dialog.

    When the installation is done, click the file Program.cs in solution explorer.

    Let’s go to the main method

    We are going to create an object of WindowsDriver with generic type WindowsElement.

    WindowsDriver<WindowsElement> notepadSession;

    I’m not going to assign it a value yet.

    Since we haven’t included the namespaces, let me click the the WindowsDriver behind  notepadSession object.

    When a bulb will show up I will click it and select import namespace.

    In order to run a legacy application, we must tell the WindowsDriver the full path of the exe file.

    That is done using an object of DesiredCapabilities class.

    DesiredCapabilities class is used for specifying the capabilities we desire to pre present in the application which we want to test with WinAppDriver.

    Let’s define and instantiate that object.

    OpenQA.Selenium.Remote.DesiredCapabilities appCapabilities =

                    new DesiredCapabilities();

    Bring in the namespace and click save all button.

    Now build the solution once.

    This is the end of this video, we are going to learn more about launching notepad in next video. ;


  • Mandatory: Running WinAppDriver.exe6:00

    WinAppDriver.exe is the heart of UI automation in Windows Application Driver based automation. It must be started first before you can run your automation scripts. In this video, I show multiple ways of launching WinAppDriver.exe. I also talk about what are common problems like wrong port number, port number blockage by Windows Firewall, and another software already using the port number.

  • How to Create Appium WinAppDriver UI Automation Script - Code Attached5:14
  • Demo: How to Run Appium WinAppDriver based UI Automation(RPA)3:29
  • Quiz 1 : Intro to UI Automation of Windows Applications with Appium WinAppDriver
  • Launch Notepad with Appium and WinAppDriver Automation on Windows 10 Desktop0:21
  • Running WinAppDriver test automation via Appium, w/o starting WinAppDriver7:42

    This video you will learn how to run your WinAppDriver scripts without explicitly launching WinAppDriver.exe. You will learn how to use the AppiumServiceBuilder class. You will also learn how to use various methods of AppiumService for using a specific port and to use a log file for test run output.


  • Section 1 Cheat Sheet and E-Book - Intro to Windows App Automation w/ Appium0:54

Requirements

  • A Windows 10 PC
  • Basic understanding of programming in C# .Net
  • Administrative access to install tools like Node, Appium, WinAppDriver, Visual Studio

Description

Welcome to an excellent automation testing tutorial for beginners.

What is WinAppDriver? Windows Application Driver (WinAppDriver) is a free test automation tool for testing Windows applications. Appium library uses WinAppDriver to perform automated operations on Windows desktop UI. Microsoft uses WinAppDriver for desktop application automation and functional software testing. This course is a WinAppDriver tutorial designed for everybody. Appium WinApp Driver is a free tool that provides APIs for many programming languages, including C# Dot Net, Java, and Python. The WinAppDriver is based on Appium, which was created by Selenium. Hence it is an industry-standard automation testing tool. Appium WinAppDriver is entirely compliant with WebDriver specifications(since it is based on Appium). Power Automate Desktop is not needed for Windows Application Driver test automation. Please note that WinAppDriver differs from AutoIt, and we don't need any familiarity with tools like AutoIt, Power Automate Desktop, PyWinAuto, or Robot Framework.


WinAppDriver UI Recorder Download and Usage is also explained completely in this course.

Automated testing is very helpful for software testing teams. Automated testing makes your software development lifecycle (SDLC) agile and quick.

If you're searching for a web app driver, please note that WinAppDriver is a different topic, and the web application driver is also another. Mostly it is Chrome Driver or Firefox Driver.

Windows Automation and Desktop Automation are at the heart of this course. In this course, you will learn about the free Windows application testing tool WinAppDriver and how to do Automation using WinAppDriver. You will also get example source code and step-by-step test automation examples. This course is about Appium WinAppDriver Windows Desktop UI Automation Testing in C# DotNet.

Automated testing is the way to go regarding desktop testing on Windows. Two popular tools for this are WinAppDriver and Appium. WinAppDriver is a Windows Application Driver that supports Selenium-like UI testing of Windows desktop applications. Appium, on the other hand, is a cross-platform mobile app automation tool that can also be used for desktop testing. WinAppDriver and Appium offer a powerful combination for automated desktop testing on Windows. These tools allow you to test your desktop applications for functionality, performance, and compatibility across different Windows versions and configurations. The best part is that you can automate the entire testing process, which saves you time and ensures consistent results.

WinAppDriver provides the following things to facilitate Automated Testing:

  1. WinAppDriver is the software that can receive Appium commands and act as a UI remote control. WinAppDriver can perform different actions on the UI of a given Windows application for automation testing. It is possible to use WinAppDriver from any programming language, including but not limited to C#, Java, C++, JavaScript, and Python.

  2. WinAppDriver UI Recorder is a lightweight UI inspection tool that allows you to find various properties of Windows UI elements.

  3. API support for various programming languages, including C Sharp (C#), Java, Python, and many more, is available.


Many students of this course have used it to learn Windows UI Automation concepts and perform in Python and Java automation. In addition, they found it to be a great WinAppDriver tutorial series.

This course is a complete answer to your Windows automated software testing questions. In this course, I will show you how to get started using Appium WinAppDriver in C# and how to go full-throttle test automation quickly.

Note: Appium was created based on WebDriver, which is also the basis of Selenium; this way, if you start from Appium/WinAppDriver, you can quickly move forward to Selenium-based UI testing. Although, you will need to understand how DOM-based HTML websites work.

The best part is that this course is in C# Dot Net, and I will show you the techniques that work instead of typical open-source trial and error. For example, Appium-based Windows Application Driver (WinAppDriver) is a course for QA persons by QA persons.

Appium is very popular in the automated tester community for mobile Automation. Appium for iOS and Android is already out there; Microsoft has joined the bandwagon by providing the necessary tooling to bring Windows application testing into the Appium world.

I'll show you how to automate the testing of legacy Win32 Applications, deal with Unified Windows Platform (UWP) applications, and address its challenge to identify UI elements in C# (C Sharp) with WinAppDriver.

The first section covers tool installation in detail, and I'll show you how to download and install everything you need for test automation win WinAppDriver. This will include Visual Studio Community Edition, Node.js, Appium, and WinAppDriver.

Section 2 introduces the Windows Application Driver (WAD) UI Recorder. Once the tools are installed, you'll set up your first UI Automation solution in C# .Net and add Appium WinAppDriver. Next, you'll write your first test automation program using C# (C Sharp) and Appium WinAppDriver in the next 5 minutes. Finally, I'll show you how to take a screenshot using Appium WinAppDriver from C# code, read a Windows Win32 application title, maximize a window, and quit an application started by Appium WinAppDriver test automation scripts.

In section 2, I'll show you how to perform UI Automation operations such as mouse clicking and typing with the keyboard (SendKeys). Then, you'll learn how to use Selenium implicit wait using C# in Appium/WinAppDriver scenarios.

Appium Desktop Client is also covered; I will show you how to create a custom session in Appium Desktop Client to inspect elements of a Windows application through Windows Application Driver(WinAppDriver or WAD). You will also learn how to check the XML tree representing the UI elements of an application using Appium for test automation scripts.

Next, I'll introduce you to the MS Test (Visual Studio Unit Testing) Framework if you want to create a unit test project in Visual Studio. You'll practically see the life cycle of an MSTest-based unit test and implement it using keywords like TestClass, ClassInitialize, TestMethod, TestInitialize, TestCleanup, and ClassCleanup in C#. I'll also teach you how to see if your automated tests are passed or failed(the TDD red-green cycle); I'll show you the Visual Studio TestExplorer window for this purpose. You'll also learn how to see test failure error details. These general test automation concepts can be used in different languages and environments and with various test automation tools.

Please note that you can also use other automation frameworks like NUnit and XUnit, which are not shown in this WinAppDriver tutorial.

Afterward, I'll show you how to mix MS Test with (Appium) Windows Application Driver to create proper automated software testing scripts. In this section, I'll show you how to debug a test for identifying problems and devising solutions to complex problems (sometimes, you can't find a Windows Element beforehand). Finally, this section will provide helpful information about practical, functional UI testing using automated software tools.

I will show the MS Test's data-driven testing in the next section. Then, I'll show you how to incorporate Excel data in Appium Windows Application Driver tests. This section will show you how to run the same set of tests with different data for testing various scenarios. But first, I'll show you how to use TestContext in automation testing.

Appium C# WinAppDriver UI Automation Testing is the core focus of this course.

The last section of this course will be about automated testing of WinForms-based (Windows Forms) applications in WinAppDriver (Appium). I'll show you how to access the most commonly used Windows controls in RPA/UI Test Automation. WinForms Windows UI Elements (controls) related topics explicitly by this course are given below:

  • Checkbox test automation

  • Radio button test automation

  • Button test automation

  • DataGrid test automation

  • Popup automated testing

  • WinTree automated testing

  • Menu Item automated testing

In the end, I hope you will find this course helpful in learning automated software testing and UI Automation in general for RPA-like scenarios with Microsoft C#, Appium-based WinAppDriver, and Visual Studio.

This course uses entirely FREE SOFTWARE TOOLS!

Everything shown in this course can be run on Azure DevOps Pipelines through CI/CD.

Note: WinApp Driver is incorrect. The correct abbreviation is WinAppDriver, which is a single word. The full name is Windows Application Driver.

Desktop automation software testing is becoming increasingly popular among businesses of all sizes. This type of software testing allows companies to automate their testing processes, resulting in increased efficiency and accuracy. In addition, by using desktop automation software testing, businesses can streamline their testing efforts and ensure that their software functions correctly before it is released to customers. This can save companies both time and money in the long run, as they can identify and fix any issues before they become significant problems. Overall, desktop automation software testing is a valuable tool to help businesses improve their software development processes and deliver high-quality products to their customers.

Appium is an open-source automation tool that is used for testing mobile applications. It provides a cross-platform solution for automating iOS, Android, and Windows devices. With Appium, developers can write automated tests using their preferred language and test framework. It also supports a wide range of testing types, including functional, performance, and compatibility testing.

Are you a software tester looking to improve your skills and stay ahead in the industry? Join our test automation course and learn how to master automated testing. With our expert instructors and a comprehensive curriculum, you'll gain the knowledge and experience needed to excel in your career. Don't miss this opportunity to enhance your skills and increase your value as a software tester. Enroll now!

Test automation is essential; learn it now!

Who this course is for:

  • QA persons wanting to learning automated testing
  • Software developers wanting to learn UI test automation