What Is Selenium?
The Original Selenium and the Selenium Suite
The Original Selenium was developed from the JavaScript TestRunner: In 2004 Jason Huggins, was working on a web application that needed repetitive manual testing. He wrote a JavaScript program that would run these tests automatically, controlling the browser actions that he previously had done manually (e.g. enter username and password, press submit), username and password). He named the program “JavaScriptTestRunner”. He made this open source, allowing other developers to add and change code, add tools etc.
Jason Huggins then worked with Paul Hammant to develop the server component in Java and, the JavaScript TestRunner (the original client-side driver) was ported to Ruby. The server acted as an HTTP proxy and the browser-instance believed the test script and web app being tested were from the same source. This is the Original Selenium; also known as Driven Selenium or Selenium B.
In 2005 the Selenium Remote Control (RC) – also called Selenium 1.0 was developed by Dan Fabulich and Nelson Sproul.
In 2006 the Selenium IDE was created by Shinya Kasatani and donated to the Selenium project.
In 2007 The Selenium Webdriver (Selenium 2) was created.
In 2008 The Selenium Grid was created.
In 2016 Selenium 3 was released.
In 2021 Selenium 4 was released.
Advantages and Benefits of Selenium
Selenium is now one of the most popular free (open source) automation tools and automates the browser to perform the many actions that would have previously been done manually. As mentioned, it records; has playback, and highlights errors while testing web apps. It can run multiple scripts across several browsers.
Selenium Test Scripts / Testing can be written in multiple coding/ programming languages, such as C#, Ruby, Scala, Perl, Python, Java, JavaScript, Groovy and more.
It supports various operating systems and works across various browsers (e.g. Firefox, Chrome, IE, Edge, Safari, Opera) and devices.
It is easy to install and provides constant updates. It has multiple simple and easy navigation tools to assist writing test cases without requiring scripts.
The Selenium Suite
Unlike some other tools, Selenium is a suite of software containing the following components: -
- The Selenium Integrated Development Environment (IDE).
- The Selenium Remote Control (RC) –now deprecated.
- The Selenium Web Driver.
- The Selenium GRID – used for distribution.
The Selenium IDE
- This is a Firefox and Chrome plugin that logs ‘natural’ interactions in whichever browser is being used, generating its code in the selected programming language (mentioned earlier) as well as Selenese (Selenium’s own scripting language).
- Recording can be enabled within the IDE and then after the test has been run, the IDE can replay the interactions and highlight errors in red.
- Whilst the plugin is quick and helpful, the code is more suited to rapid prototyping. For automation test scripts and cross browser testing, it is better to use the Selenium WebDriver.
What Is Webdriver IO?
WebdriverIO is an end-to-end framework for web and mobile application with scalable and robust solution. WebdriverIO is a progressive end-to-end framework for automated testing of web and mobile applications. It comes with a set of plugins which allows the setup to be easily integrated and extended. This helps to create stable, scalable and robust automated testing. It is an open-source testing automation framework written in JavaScript and running on NodeJS. It’s very useful for testing native mobile and web applications for iOS devices.
Webdriver is an open-source project on GitHub which has been around since 2013. It has over 7k stars since the time of writing and is well maintained. Due to the ease in managing and with a respectable number of followers, this project has seen a growth in its popularity in recent years, in part due to the ease with which it can be managed. Its simpler architecture means it is faster than heavier frameworks like Selenium.
What Is Appium?
Appium is a freely distributed opensource mobile application UI Testing framework; an ecosystem of tools and libraries. It allows native, hybrid and web application testing and supports automation tests on physical devices as well as an emulator, simulator or both. It provides cross-platform application testing, i.e., a single API works for both Android and iOS platform test scripts. Platform examples are android, iOS, desktop apps (Windows, Mac) and now on platforms like Smart TV and much more.
It supports all languages that have Selenium client libraries; examples are Java, Objective-C, JavaScript with node.js PHP, Ruby, Python, c#, etc. This means users can often use the programming language they are happier/more comfortable with when writing automated scripts/test codes. It was originally developed by Dan Cuellar in 2011, using the programming language C#, and called "iOS Auto". It is now developed and supported by Sauce Labs and can be summarised as a Cross–Platform Mobile Automation Tool.
What Is Automated Testing?
Automated Testing is the testing of products created by software developers to deliver bug free software and applications using automation tools such as Selenium, Mocha and others listed on our website. The use of these tools makes the entire process faster and more efficient testing is built to support Quality Analysts. Automated testing supports Quality Analysts and is a process in which software tools execute pre-scripted tests on a software application. The purpose is to define repetitive tasks and create or modify a test automation framework allowing constant test execution, reporting and comparisons, saving time and money.