---
title: Automatic Web Form Testing
date: 2025-01-13T21:48:09Z
modified: 2026-09-22T19:51:44Z
permalink: "https://techarticles.co.uk/automatic-web-form-testing/"
type: post
status: publish
excerpt: ""
wpid: 4322
categories:
  - Automation
  - Coding
  - SureForms
  - Wordpress
timestamp: 2026-09-22T19:51:44Z
tags:
  - Automation
  - Coding
  - SureForms
  - Wordpress
---

I’ve been using Selenium and the Chrome web driver for some time to test my web forms, and this week, I’ve created a video on doing this for a web form and showing you how this works with a standard web form.

Now Selenium is a python library and you access the chrome web driver by setting your python and your webdriver to be on the path for me this is simple I have a pathed directory where everything within it is automatically on path on my Windows 11 Machine

The example used in the tutorial is below and the form plugin in this instance was [SureForms](https://ta0.uk/sureforms).

```
<span class="line"><span style="color: #F97583">from</span><span style="color: #E1E4E8"> selenium </span><span style="color: #F97583">import</span><span style="color: #E1E4E8"> webdriver</span></span>
<span class="line"><span style="color: #F97583">from</span><span style="color: #E1E4E8"> selenium.webdriver.common.by </span><span style="color: #F97583">import</span><span style="color: #E1E4E8"> By</span></span>
<span class="line"><span style="color: #F97583">from</span><span style="color: #E1E4E8"> selenium.webdriver.common.keys </span><span style="color: #F97583">import</span><span style="color: #E1E4E8"> Keys</span></span>
<span class="line"><span style="color: #F97583">import</span><span style="color: #E1E4E8"> time</span></span>
<span class="line"></span>
<span class="line"><span style="color: #6A737D"># Set up the Selenium WebDriver</span></span>
<span class="line"><span style="color: #E1E4E8">driver </span><span style="color: #F97583">=</span><span style="color: #E1E4E8"> webdriver.Chrome()</span></span>
<span class="line"></span>
<span class="line"><span style="color: #6A737D"># Open the target form page</span></span>
<span class="line"><span style="color: #E1E4E8">driver.get(</span><span style="color: #9ECBFF">"https://forms.wpcode.dev/contact"</span><span style="color: #E1E4E8">)</span></span>
<span class="line"></span>
<span class="line"><span style="color: #6A737D"># Wait for the form to load</span></span>
<span class="line"><span style="color: #E1E4E8">time.sleep(</span><span style="color: #79B8FF">3</span><span style="color: #E1E4E8">)</span></span>
<span class="line"></span>
<span class="line"><span style="color: #6A737D"># Fill in the "Name" field</span></span>
<span class="line"><span style="color: #E1E4E8">name_field </span><span style="color: #F97583">=</span><span style="color: #E1E4E8"> driver.find_element(By.</span><span style="color: #79B8FF">ID</span><span style="color: #E1E4E8">, </span><span style="color: #9ECBFF">"srfm-input-0665c111-lbl-TmFtZQ"</span><span style="color: #E1E4E8">)</span></span>
<span class="line"><span style="color: #E1E4E8">name_field.send_keys(</span><span style="color: #9ECBFF">"John Doe"</span><span style="color: #E1E4E8">)</span></span>
<span class="line"></span>
<span class="line"><span style="color: #6A737D"># Fill in the "Email" field</span></span>
<span class="line"><span style="color: #E1E4E8">email_field </span><span style="color: #F97583">=</span><span style="color: #E1E4E8"> driver.find_element(By.</span><span style="color: #79B8FF">ID</span><span style="color: #E1E4E8">, </span><span style="color: #9ECBFF">"srfm-email-b3386c12-lbl-RW1haWw"</span><span style="color: #E1E4E8">)</span></span>
<span class="line"><span style="color: #E1E4E8">email_field.send_keys(</span><span style="color: #9ECBFF">"john.doe@example.com"</span><span style="color: #E1E4E8">)</span></span>
<span class="line"></span>
<span class="line"><span style="color: #6A737D"># Fill in the "Phone Number" field</span></span>
<span class="line"><span style="color: #E1E4E8">phone_field </span><span style="color: #F97583">=</span><span style="color: #E1E4E8"> driver.find_element(By.</span><span style="color: #79B8FF">ID</span><span style="color: #E1E4E8">, </span><span style="color: #9ECBFF">"srfm-phone-96461465-lbl-UGhvbmUgTnVtYmVy"</span><span style="color: #E1E4E8">)</span></span>
<span class="line"><span style="color: #E1E4E8">phone_field.send_keys(</span><span style="color: #9ECBFF">"1234567890"</span><span style="color: #E1E4E8">)</span></span>
<span class="line"></span>
<span class="line"><span style="color: #6A737D"># Select an option from the dropdown</span></span>
<span class="line"><span style="color: #E1E4E8">dropdown </span><span style="color: #F97583">=</span><span style="color: #E1E4E8"> driver.find_element(By.</span><span style="color: #79B8FF">ID</span><span style="color: #E1E4E8">, </span><span style="color: #9ECBFF">"tomselect-1-ts-control"</span><span style="color: #E1E4E8">)</span></span>
<span class="line"><span style="color: #E1E4E8">dropdown.click()  </span><span style="color: #6A737D"># Open the dropdown</span></span>
<span class="line"></span>
<span class="line"><span style="color: #6A737D"># Wait for the dropdown to open</span></span>
<span class="line"><span style="color: #E1E4E8">time.sleep(</span><span style="color: #79B8FF">1</span><span style="color: #E1E4E8">)</span></span>
<span class="line"></span>
<span class="line"><span style="color: #6A737D"># Select the first option in the dropdown</span></span>
<span class="line"><span style="color: #E1E4E8">option </span><span style="color: #F97583">=</span><span style="color: #E1E4E8"> driver.find_element(By.</span><span style="color: #79B8FF">ID</span><span style="color: #E1E4E8">, </span><span style="color: #9ECBFF">"tomselect-1-opt-1"</span><span style="color: #E1E4E8">)</span></span>
<span class="line"><span style="color: #E1E4E8">option.click()</span></span>
<span class="line"></span>
<span class="line"><span style="color: #6A737D"># Fill in the "Message" box</span></span>
<span class="line"><span style="color: #E1E4E8">message_box </span><span style="color: #F97583">=</span><span style="color: #E1E4E8"> driver.find_element(By.</span><span style="color: #79B8FF">ID</span><span style="color: #E1E4E8">, </span><span style="color: #9ECBFF">"srfm-textarea-bb1d9092-lbl-TWVzc2FnZQ"</span><span style="color: #E1E4E8">)</span></span>
<span class="line"><span style="color: #E1E4E8">message_box.send_keys(</span><span style="color: #9ECBFF">"This is a sample message."</span><span style="color: #E1E4E8">)</span></span>
<span class="line"></span>
<span class="line"><span style="color: #6A737D"># Submit the form</span></span>
<span class="line"><span style="color: #E1E4E8">submit_button </span><span style="color: #F97583">=</span><span style="color: #E1E4E8"> driver.find_element(By.</span><span style="color: #79B8FF">ID</span><span style="color: #E1E4E8">, </span><span style="color: #9ECBFF">"srfm-submit-btn"</span><span style="color: #E1E4E8">)</span></span>
<span class="line"><span style="color: #E1E4E8">submit_button.click()</span></span>
<span class="line"></span>
<span class="line"><span style="color: #6A737D"># Wait for the result and close the browser</span></span>
<span class="line"><span style="color: #E1E4E8">time.sleep(</span><span style="color: #79B8FF">5</span><span style="color: #E1E4E8">)</span></span>
<span class="line"><span style="color: #E1E4E8">driver.quit()</span></span>
```Python

This 48 lines of code allows for a totally automatted testing, how i run my testing is to have a windows schedule to run a bat file (below) which then runs the entire of the python (py) files in the directory to test the individual forms.

```
<span class="line"><span style="color: #F97583">@echo</span><span style="color: #E1E4E8"> </span><span style="color: #F97583">off</span></span>
<span class="line"><span style="color: #F97583">for</span><span style="color: #E1E4E8"> </span><span style="color: #FFAB70">%%f</span><span style="color: #E1E4E8"> </span><span style="color: #F97583">in</span><span style="color: #E1E4E8"> (*.py) </span><span style="color: #F97583">do</span><span style="color: #E1E4E8"> (</span></span>
<span class="line"><span style="color: #E1E4E8">    </span><span style="color: #F97583">echo</span><span style="color: #E1E4E8"> Running </span><span style="color: #FFAB70">%%f</span></span>
<span class="line"><span style="color: #E1E4E8">    python </span><span style="color: #9ECBFF">"</span><span style="color: #79B8FF">%%f</span><span style="color: #9ECBFF">"</span></span>
<span class="line"><span style="color: #E1E4E8">)</span></span>
<span class="line"><span style="color: #F97583">echo</span><span style="color: #E1E4E8"> All scripts completed!</span></span>
<span class="line"><span style="color: #F97583">pause</span></span>
```BAT (Batchfile)

You can watch the YouTube Video here:

![](https://i.ytimg.com/vi/LTgsGYRKsyA/maxresdefault.jpg)

If your more of a visual builder you may want to give packages ago and in the previous video to this one you can watch me build a “package” live for the same webform why not sign up for packages its quick and easy to get the hang of and there is setup but its a “no code” solution.

![](https://i.ytimg.com/vi/2qBY-FysTWk/maxresdefault.jpg)