How To Automate Desktop Application Using Selenium Python

In this tutorial, we’ll discuss how to automate desktop applications using Selenium Python. Selenium is an open-source tool mostly used for automating web applications.

However, with the help of the Pywinauto library, you can extend the capability of Selenium to automate desktop applications as well. Here, we’ll be focusing on automating Windows-based desktop applications.


Before we dive into the tutorial, make sure you have the following installed on your computer:

Step 1: Installing required packages

First, we need to install both Selenium and Pywinauto libraries. To do this, open your command prompt or terminal and run the following commands:

Step 2: Setting up a sample desktop application for testing

For this tutorial, we’ll be automating the built-in Notepad application on Windows. Make sure the Notepad is installed on your computer. If you’d like, you can also use another application of your choice by modifying the example code accordingly.

Step 3: Creating the Python script

Now that we have installed the necessary libraries and set up the desktop application, it’s time to write the Python script to automate the application.

Create a new Python file (e.g. and add the following code:

This script will carry out the following tasks:

  1. Launch Notepad
  2. Type a text into the Notepad window
  3. Save the typed text into a file
  4. Close Notepad

Step 4: Running the script

Save your Python script and run it using the command prompt or terminal. To do this, navigate to the directory containing your script and run the following command:

You should see the Notepad application launching, and the automation script will perform the defined tasks.

Full Code


In this tutorial, we learned how to automate a desktop application using Selenium and Pywinauto in Python. You can now extend this methodology to automate your own desktop applications, making routine tasks more efficient and less error-prone. Keep exploring and experimenting to find additional ways to enhance your automation scripts.