October 7, 2022

Selenium testing

Selenium is an open source web browser automation framework. It’s a combination of several different tools - the Selenium IDE, Selenium WebDriver, Selenium RC, and Selenium Grid. Together these tools offer users a single interface for inputting test scripts in a number of popular coding languages (Ruby, Java, Python, C#, JavaScript, Perl, plus its own Selenese language), plus the ability to create automated tests from these scripts and run them locally or remotely on a range of browsers.

What is Selenium Testing?


Selenium automation uses the Selenium toolbox to run tests across different browser instances. Selenium Grid lets you test across multiple instances and machines at once. There are a lot of types of testing it can be used for:

  • System testing

  • End-to-end testing

  • Compatibility testing

  • Regression testing

  • Integration testing

  • Performance testing

Essentially, any test you can think of that can be run in a browser can be run in Selenium if you have the knowledge and training to set it up.

While Selenium Testing is likely to have a place in developer’s toolkits for some time to come, there are a number of things that make it less practical for today’s complex testing requirements:

1It’s complex with a steep learning curve

2It takes a lot of manual coding to build the testing solution you want

3It takes a lot of training to get the most out of it

4Needs additional software to do things like test native, hybrid, and web mobile apps

5No built-in reporting capabilities

6No support apart from user forums

7It’s a lot of work to evolve tests as the apps you develop evolve

What is selenium testing

What Tools Does Selenium Software Include?

Selenium browser testing suite uses a combination of different tools to achieve its goals, and the names can be a little confusing at first. Selenium currently consists of:

selenium logo green

Selenium 3

- an updated version of Selenium 2 merged with Selenium RC

selenium IDE logo

Selenium IDE

- a browser plug-in that’s great for simple testing

Selenium grid logo

Selenium Grid

- used to run multiple instances of tests across multiple browsers

This is an evolution from the original framework with Selenium Remote Control (RC) as a separate tool.

As you can see from the diagram, Selenium has continued to evolve. However, it still asks that developers know several extra tools to build testing environments that meet today's needs.

New version of selenium - evolution

What do the different Selenium Testing components actually do?


The different tools that make up the Selenium Automation Framework have very different functions. As Selenium has evolved, these tools have changed and in some cases combined. Knowing what each tool can do and how they fit together is just the start of the knowledge needed to use Selenium, especially if you’re trying to use it as your only testing automation framework.

It’s a bit confusing, as some of the tools have now been bundled together, whereas some are still separate downloads (e.g. Selenium Grid). You will need to know all of them to get the best results from Selenium, and if you are taking over legacy SElenium testing set-ups you will also need to learn about how things were done in the past. 

Selenium Tool
Uses & Funcitonis

Selenium RC (Remote Control)

also known as Selenium 1

The first Selenium tool to be developed, Selenium RC was relatively limited. Written in Java, and it limits users to JavaScript as an input language. It also requires a “real” browser to run in, as it’s a browser extension.

Selenium 2 consists of WebDriver

previously a rival of Selenium

plus Selenium 1/ Selenium RC

The addition of WebDriver to Selenium intended to expand the capability of Selenium 1 to make testing faster and easier to automate. A WebDriver exists for each major browser, and languages such as Perl,Ruby,Python,C#,Java,PHP,and .Net can also be used

Selenium 3

Selenium 2 with a range of bug fixes and updated WebDriver integrations. The WebDrivers are developed more closely with the individual browser developers.

Selenium 4

Alpha Version Only

Improved add-ons framework and complete W3C compatibility vs Selenium 3

Selenium Grid

(Selenium Server

Lets developers run tests remotely on multiple browser instances, thus making large-scale automated Selenium testing more practical.

Selenium IDE

Integrated Development Environment

The Selenium IDE is a browser extension for Firefox and Google Chrome that offers an open-source test recording and playback solution for web application testing. It’s still in popular use today for running simple tests.

what selenium components do

What is Selenium WebDriver?


WebDriver and Selenium joined forces to create a true cross-platform testing experience in 2006.

If you’re going to try Selenium automation, you will need to know more about this key tool before you can get the most out of Selenium testing. This can be a steep learning curve, but without this knowledge you will be stuck with only the simplest of Selenium tests.

First you will need to be relatively fluent in one or more of the following coding languages:

  • Ruby

  • Java

  • Python

  • C#

  • JavaScript

  • Perl

Second you will need to plan out your testing framework and hand-code each test, inputting it into the Selenium interface. Need more reporting or other complex functions? You’ll need a third-party add-on or extra software of some sort, and will need to know how to use it.

Once you have put in your test scripts at an average rate of 7 per developer per day you can start setting up your tests. You can even use Selenium Grid to test on many browser instances at once.

However, this is all pretty complicated, and also takes a lot of learning and man hours to achieve. Once you have everything set up, you will need to have everything fully documented for your testing set-up. This is so when your test setting evolves you can adjust the Selenium scripts to achieve your new goals more easily.

Manual testing

Pros & Cons of Selenium Software

Selenium software is popular for a reason, and it’s likely to be a part of many developer’s toolkits for some time to come. Some of the biggest benefits are:

  • It's free

  • It’s open source, and constantly evolving

  • There’s a huge user base with lots of different projects

  • It can be used to do almost any type of browser testing

  • There is an extensive selection of add-ons, bindings, plug-ins, extensions, and software integrations to help make Selenium work better in a modern testing environment

  • Works with a huge range of browsers and scripting languages


However, there are also a lot of bad points:

selenium is hard to learn, need more additional tools

Selenium has a very steep learning curve, often extending to third-party tools and software with their own learning requirements

selenium has no features besides testing

Selenium automation only extends to the tests themselves, not the development and optimization end of things

no support for selenium testing

There’s no tech support, just the extensive user community

missing features

Lots of common features like automatic reporting and automatic image verification aren’t included, again calling for third-party tools

not able to evolve and optimize

Unable to automatically evolve and optimize itself

manual scripting is slow and not scalable

The Manual scripting process is slow - an average developer can create 7 test scripts for a Selenium automated testing run per day, while an AI-powered testing solution can generate thousands of scripts per minute, test these scripts and optimize them with little or no human intervention

development process is slow, competing interests

The Selenium development process is slow due to its open source nature, with no cohesive development team over its whole lifespan.

Issues with selenium testing

The Best Alternative to Selenium Software


What would make a good alternative to Selenium testing automation?

1An automated AI-powered platform that could generate, test and optimize test scripts with little or no coding from the user.

2Functionize gives developers all this and more. It can drastically reduce the number of man-hours needed to set up and test new testing environments. It can help you easily build and run tests in a modern, evolving development environment.

3Additionally, the applications being tested can be running on a range of different platforms and devices, including mobile devices and more. You’re no longer restricted to desktop without adding third-party solutions with all that entails.

Functionize smart test automation lets anyone create end-to-end tests in minutes. Tests are powered by AI/ML to run on any browser and self heal as your site changes.

Selenium Vs Functionize


Functionize applies machine learning to help organizations rapidly scale their automation. Companies embark on test automation in order to release faster and increase quality. Since Selenium’s scripts frequently break and require coding ability to keep up to date, the test maintenance overhead ends up lowering development velocity. Testing no longer needs to be a bottleneck with the advancements in AI-powered testing. Here’s how Functionize solves the greatest pain points with Selenium:

Selenium Tool

Represents a steep learning curve

Selenium testing is complicated, with lots of third party add-ons and legacy differences to learn for each developer. 

selenium is hard to learn, need more additional tools

Suited for varying skill sets

Functionize is suited to a range of different skill sets from low or no-code options for beginners through to enabling powerful new options for advanced highly technical users.

No native remote/cloud support

Selenium lacks any native support for remote team collaboration. Like many complex functions, you would need a third-party cloud provider to support remote teamwork and cloud test deployment.

cloud based from day one

Cloud based

Functionize is perfect for today’s dispersed teams and complex cloud testing environments. Relax knowing your tests are accessible from anywhere in the world, and can be run from anywhere in the world.

Collaboration based on third-party applications

making for a steeper learning curve and raised operating costs.

dispersed teams, cloud based

Built-in collaboration

makes teamwork easier than ever. 

Scalability issues

Manually scaling Selenium tests is still a chore, and once you add third-party tolls to the mix you no longer get the benefits of a free testing environment.

Seamless scalability

Seamless scalability

Cloud-based Functionize lets you instantly grow or shrink your tests to meet your current needs. You can run all your tests in parallel, no matter how many instances you need.

Test stability

can be hard to maintain as your applications and testing environments evolve.

Rock solid test stability

Rock solid tests stability

backed by our AI optimization platform and active development team. 

No native data collection or reporting

means you have to turn to third-party solutions, often paid solutions. 

AI-powered optimizations, data collection, reporting

Built in reporting, machine learning directed data collection and AI-powered optimization

to make sure you get the most out of your tests, and out of your applications.

No cloud deployment options

without third-party add-on services that cost time and money.

multiple deployment options

On-premise and cloud deployment options

make Functionize the perfect choice for every situation, no matter what your secure testing needs might be.

Unpredictable costs

JSelenium has a lot of unpredictable hidden running costs, making it impossible to predict how much the testing phase of your project is going to cost your company. 

hidden cots of selenium automation

Simple, predictable pricing framework

It’s easy to predict how much Functionize will cost you going forward with a clear pricing structure designed to cater to your testing needs (no matter what they are).

The hidden running costs of Selenium testing


The Selenium testing framework is open source and free. However, there are lots of hidden costs that you should know about before choosing it as your sole testing platform:

High training costs

High training costs

Selenium testing is complicated, even without all the necessary add-ons and third-party tools. It costs a lot of time and money to learn how to get the most out of Selenium, making that “free” price tag look a lot more expensive in the long run. Add to this the cost of training users in any third-party tools you might need.

Raised personnel costs

Raised personnel costs

due to increased training and manual debugging requirements

hidden costs for third-party tools and extensions

Additional costs of third-party tools and extensions

From basic reporting though to cloud collaboration and optimized test automation, Selenium needs a huge range of third-party tools and services to help it keep up with today’s testing needs

Lots of manual debugging and other maintenance

Lots of manual debugging and other maintenance

Selenium and many of its extras call for lots of manual debugging and issue tracking if users want to stand a chance of keeping their test environment in a fit state to test today’s complex applications and services:

  • Selenium struggles to cope with constantly evolving modern UIs with nested DOMs and other complex features

  • Struggles to cope with exactly the sort of UI changes you want to be able to test quickly and easily

  • Recording, reporting and optimizing both tests and the final product is a slow, human-powered process with lots of individual steps that often call for outside software and services

Scripts must be updated for each browser, OS, device.

Scripts must be updated for each browser instance, OS and/or device.

Whether you spend manpower and time doing this entirely by hand, or choose to pay for complex and sometimes unreliable third-party tools to help you, costs will increase with each update. 

Unpredictable costs

Unpredictable costs

Not only are there a lot of extra costs associated with Selenium testing - it’s also impossible to predict testing costs for projects that rely heavily on Selenium.

selenium hidden costs

For a paid solution, why not check out what Functionize can offer you. Just as with UI tests, we make it really easy to create and run API tests. One of the most powerful features we offer is the ability to store API responses in variables that you can then call in your tests. This is invaluable when, for instance, you need to test with an API key that needs to change each time.

Explore Product