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
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:
- an updated version of Selenium 2 merged with Selenium RC
- a browser plug-in that’s great for simple testing
- 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.
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 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.
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.
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 has a very steep learning curve, often extending to third-party tools and software with their own learning requirements
Selenium automation only extends to the tests themselves, not the development and optimization end of things
There’s no tech support, just the extensive user community
Lots of common features like automatic reporting and automatic image verification aren’t included, again calling for third-party tools
Unable to automatically evolve and optimize itself
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
The Selenium development process is slow due to its open source nature, with no cohesive development team over its whole lifespan.
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 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:
Represents a steep learning curve
Selenium testing is complicated, with lots of third party add-ons and legacy differences to learn for each developer.
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.
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.
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.
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.
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.
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.
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.
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 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:
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.
due to increased training and manual debugging requirements
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
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
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.
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.
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.