Automating Regression Testing with Selenium and Python in Visual Studio Code

Automating Regression Testing with Selenium and Python in Visual Studio Code

Quality Assurance
May 1, 2025
5-6 min

Share blog

Introduction

Regression testing is an essential part of any software development cycle.As your project grows time consuming and error-prone. That’s where automation comes in. In this blog, We will walk you through how we automated my web application’s regression testing using Selenium with Python, all inside Visual Studio Code.

We will also cover how we used Selenium IDE for quick script generation and how we tackled some tricky issues caused by modern UI frameworks like Material UI (MUI).

Why I Chose Selenium with Python for Automation Testing

When it comes to automation testing, there are plenty of frameworks and tools out there - Playwright, Cypress, Puppeteer, TestCafe, and of course, Selenium. After researching and testing a few of them, We decided to go with Selenium + Python for several compelling reasons. Let us walk you through why this combination was the most practical, efficient, and scalable choice for our regression testing needs.

  • Python is beginner-friendly, readable, and fast to code.
  • Selenium supports all major browsers and is well-documented.
  • It integrates smoothly with Visual Studio Code (VS Code), my preferred IDE.
  • Perfect for automating functional and regression tests on web apps.

Step 1: Installing Python

First things first, you need to have Python installed on your system. Python is the backbone of our testing scripts.

  • Visit python.org and download the latest version of Python.
  • Follow the installation prompts, ensuring that you check the box “Add Python to PATH” before clicking “Install Now.”
Pricing & Billing

Step 2: Installing Selenium

Next, we need to install the Selenium package for Python. Selenium is the library that allows us to control web browsers through Python scripts.

  • 1
    Open your command prompt or terminal.
  • 2
    Run the following command to install Selenium:
Pricing & Billing

This will install the Selenium package along with all its dependencies.

Writing the Automation Script

Step 3: Setting Up Visual Studio Code

We prefer using Visual Studio Code (VS Code) as our Integrated Development Environment (IDE). It provides great support for Python and makes automation scripts easy to write and debug.

  • 1
    Download VS Code from here.
  • 2
    Install the Python extension in VS Code to get syntax highlighting, auto-completion, and debugging support for Python.
Pricing & Billing

Step 4: Writing the First Automation Script

Now that we have our environment set up, let’s write the first automation script. The objective here is to open a browser, navigate to the login page, and perform actions like entering credentials and clicking buttons.

We’ll also guide you on how to save and run the file.

Steps to Follow:

  • 1
    Open Visual Studio Code.
  • 2
    Create a new file named

test_login.py (You can name it anything, but this name is simple and descriptive.)

Let's Build Something Great Together

Ready to transform your idea into a powerful software solution? Talk to our experts and get a free consultation.

Contact Us

Here’s an example script:

Pricing & Billing

In this script:

  • We first initialize the WebDriver.
  • Open the web page https://test.project.com/login/.
  • Locate the username and password fields by their IDs, enter credentials, and submit the form.
  • Finally, we close the browser after 10 seconds.

Step 5: Automating with Selenium IDE in Firefox

While the above script was written manually, We also used Selenium IDE for quick script generation.

  • 1
    Selenium IDE is a browser extension that records your actions in the browser and generates scripts in various languages (including Python).
  • 2
    Unfortunately, Selenium IDE only works in Firefox (Chrome no longer supports it), so I installed the extension in Firefox.
Pricing & Billing

To use Selenium IDE:

  • Install the Selenium IDE extension in Firefox from the Firefox Add-ons store.
Pricing & Billing
  • Record your interactions on the web page (e.g., logging in, navigating, filling out forms).
Pricing & Billing
  • Export the recorded script in Python format.
Pricing & Billing

Once exported, We refined the script in VS Code, cleaning up unnecessary code and adding assertions to validate expected results.

Challenges Faced During Automation

1. UI Issues Due to Material UI (MUI)

One of the challenges we encountered while automating tests was dealing with dynamic selectors generated by Material UI (MUI). MUI, being a popular component library, generates dynamic class names and IDs, which makes it difficult to select elements consistently.

For example:

Pricing & Billing

These dynamic classes made it hard to reliably select elements using traditional ID or class locators.

💡Solution: To overcome this, We switched to using XPath selectors. XPath is flexible enough to target elements based on their attributes, text, and position in the DOM.

For example:

Pricing & Billing

By using XPath, We could locate elements more reliably even when their class names changed.

Conclusion

By using Selenium with Python, We were able to automate the regression testing of the web application effectively. The combination of Visual Studio Code, Selenium IDE, and Python provided us with a powerful, flexible, and efficient environment to automate web tests.

While there were some challenges, particularly with dynamic selectors and Material UI (MUI), these were solved using XPath, and the rest of the testing process went smoothly.

If you are considering using Selenium + Python for your test automation, We highly recommend it. It’s beginner-friendly, well-documented, and powerful enough to handle complex web applications.

Blogs

Discover the latest insights and trends in technology with the Omax Tech Blog.

View All Blogs
Omax | Blog | How to Add LiveKit Video Calling to a Next.js App
12-14 min
September 11, 2026

How to Add LiveKit Video Calling to a Next.js App

Add embedded video & audio calling to Next.js with LiveKit Cloud. Compared vs Twilio, Daily, Agora, Zoom — plus token auth, guests & recording.

Read More
Omax | Blog | We chose ECS over EKS: what we gained and what we gave up
8-10 min
September 10, 2026

We chose ECS over EKS: what we gained and what we gave up

An honest comparison of ECS vs EKS the costs, tradeoffs, and real-world reasoning behind choosing ECS for a production platform on AWS.

Read More
Omax | Blog | Upgrading Legacy Systems: From Outdated Technology to Competitive Advantage
8-10 min
September 07, 2026

Upgrading Legacy Systems: From Outdated Technology to Competitive Advantage

Learn how to upgrade legacy systems through application modernization, API integration, cloud migration, security improvements, and incremental system upgrades without disrupting business operations.

Read More
Omax | Blog | Building Distributed Tracing and Observability with AWS X-Ray
12-14 min
September 04, 2026

Building Distributed Tracing and Observability with AWS X-Ray

A practical guide to correlating requests across a multi-tier application using correlation IDs, AWS X-Ray segments, and structured logging for faster incident debugging.

Read More
Omax | Blog | Designing Before and After AI: What Really Changed
6-7 min
September 03, 2026

Designing Before and After AI: What Really Changed

A look at how AI has transformed UI/UX design from manual wireframes and slow research to AI-assisted prototyping, design-to-code, and personalization at scale.

Read More
Omax | Blog | Beyond Prompting: Managing Context and Tokens in AI Coding Tools
12-14 min
September 03, 2026

Beyond Prompting: Managing Context and Tokens in AI Coding Tools

Ever wondered why your AI coding agent starts losing context or hits a hard limit mid-task? The answer lies in tokens and the context window. Good AI coding is not about giving the model the most information. It is about giving it the right information at the right time.

Read More
Omax | Blog | What Is llms.txt? How It Helps Google, AI Search, and Agentic Browsing Find Your Website
10-12 min
August 31, 2026

What Is llms.txt? How It Helps Google, AI Search, and Agentic Browsing Find Your Website

Learn what llms.txt is, how it differs from sitemap.xml and robots.txt, and how it can help your site get found by Google, AI search tools, and AI agents.

Read More
Omax | Blog | Build an Automated Image Compression Script with Sharp and SVGO
7-8 min
August 28, 2026

Build an Automated Image Compression Script with Sharp and SVGO

Compress images from the terminal with a Node.js script powered by Sharp and SVGO a safe, two-step workflow that keeps your site fast without bloating your repo.

Read More
Omax | Blog | The Right Way to Migrate from MySQL to AWS Aurora DSQL
7-8 min
August 25, 2026

The Right Way to Migrate from MySQL to AWS Aurora DSQL

Migrating a production database is one of the highest-risk changes you can make to an application. Moving from MySQL to AWS Aurora DSQL raises the stakes further...

Read More