Selenium is widely used, but it's a little known fact that you can use it to test anything built with HTML and CSS, including Chrome Extensions and Emails.

We'll create a simple test for the Register page from Swit and then we'll test the email that we receive.

I'll also be making some comparisons between Selenium and Endtest:



Selenium can only interact with HTML elements if they're in a browser.

This means that we'll have to open our email in a browser.

Luckily, anyone can use the Endtest Mailbox for free.

The way it works is similar to a disposable email service.

Simply send your email(s) to a username@endtest.io email address.

The username can be anything you choose.

For instance, you can choose something like jim32328@endtest.io.

You can access the Inbox for that email address on that page.

Just add the email parameter in the URL, like this:

https://endtest.io/mailbox?email=jim32328@endtest.io

Please note that the emails will be deleted after 2 hours.

But for now, let's get back the Register page from Swit:

driver.get("https://swit.io/register")

firstName = driver.find_element_by_id("firstName")

lastName = driver.find_element_by_id("lastName")

email = driver.find_element_by_id("id")

password = driver.find_element_by_id("password")

confirmPassword = driver.find_element_by_id("confirmPassword")

submitButton = driver.find_element_by_class_name("button--important")

firstName.send_keys("Klaus")

lastName.send_keys("Werner")

email.send_keys("klaus123@endtest.io")

password.send_keys("Password123")

confirmPassword.send_keys("Password123")

submitButton.click()

And here is the result:

Now, if we want to check that email, we have to go to:

https://endtest.io/mailbox?email=klaus123@endtest.io

And we'll be able to open our email:

We just have to write that part with Selenium:

driver.get("https://endtest.io/mailbox?email=klaus123@endtest.io")

email = driver.find_element_by_class_name("email_item")

email.click()

Since you're planning to run that test multiple times, you should generate a random email and store it in a variable and then append it to the Endtest Mailbox URL.

If you're looking for a better Selenium alternative, switch to Endtest.

