A simple guide to upgrading to Selenium 4.0

What’s been going on?

Yesterday (13th October 2021) was a big day in the Selenium world. 4.0 has finally made it as a stable release.

tweet from Jim Evans announcing Selenium 4.0 Release

What does this mean for me?

According to the recent Mabl state of devOps report, Selenium is the tool of choice for the overwhelming majority of survey respondents using a functional testing tool:-

Extract from Mabl’s 2021 State of Testing In DevOps survey showing 41% of respondents used Selenium

If you already have Selenium and are wondering how easy it is to upgrade – the answer is, pretty easy really. Don’t be scared of it. It makes sure you’re using the latest code, plus there are a bunch of cool new features in this version for you to try, so upgrading makes sense.

That being said, I wanted to point out a few things that caught me out while attempting to upgrade from Java Selenium 3.1.14 to 4.0 today.

Where are the best instructions on how to upgrade?

I found the instructions on the Selenium site itself very helpful:-

I also used the Applitools blog post, how to upgrade to selenium 4.

One thing that perhaps is obvious to people who play with this stuff all day but wasn’t to me, was the missing reference to pom.xml. Perhaps because other setups use a different filename to hold their Selenium dependencies the articles weren’t explicit, but as a Maven user, in order to upgrade to Selenium 4.0 you need to go to the pom.xml and find the Selenium Java dependency and update the version like this:-

step 1: open the pom.xml (maven users only)
Step 2. change version

After you save this file, you may see some errors. These are visible in Eclipse as problems, or will appear if you run “mvn clean compile” from cmd line from the same folder as your pom.xml.

The selenium instructions include some more detail on this if you get stuck, but my errors were all to do with Desired Capabilities. From what I understand, this is essentially deprecated in Selenium 4, because it isn’t W3C compliant.

To fix this, we need to use browser specific Options instead.

From this:-

To this:-

I had to replace all instances in my code that referred to the previous DesiredCapabilities. Once this happened and I saved the file, everything went red. 🤯🤯🤯

I panicked. I thought I’d broken EVERYTHING. I sought advice from a more experienced automation guru than me at this point, and the fix was simple.

To fix this, you simply needed to run a command to update the Maven Project. In Eclipse, the keyboard shortcut for this is Alt+F5 (although I’m guessing the cmd line “mvn clean compile” does the same thing.)

Hurrah! That was all it took! Selenium 4.0 is now enabled 😊.

I’m sure these instructions won’t be applicable to everyone, but if they have helped you at all then that’s cool.

T’ra for now!

Leave a comment