Selenium is one of the best testing automation tools available in the market. It is an open source so you don’t have to check your pocket before downloading and installing it to your computer system. Any automation tool comes into picture when people get bored of manual testing, it is pretty obvious that if you keep on performing the same task over and over again searching for the bugs, you will get bored and exhausted, and so selenium makes it easier for you to perform your testing easily without much pain.
Selenium is an open source tool but it has a number of disadvantages too. For example, you can use it to automate only web based applications and user has to rely on any programming languages. But there are a number of advantages too like you can run your scripts on different operating systems and browsers.
Selenium is not a single tool but a set of tools using which you can automate any web based application.
The different tools available in Selenium suite are:
- Selenium IDE: Selenium Integrated Development Environment is a record and playback tool. We cannot do a deep testing of an application using SIDE. You can record, edit and debug tests using it. It is a firebox plug-in using which you can simply record your workflow the way you want to test it and then later on you can play it.
- Selenium RC: Unlike Selenium IDE, Selenium RC supports almost all the browsers like firebox, IE, chrome, Safari etc. In selenium IDE you can do the record and playback but here it doesn’t support record and playback. It is like a standalone java program using which you can run html test suits. Here before executing the test script you need to start the server.
- Selenium Web Driver: Selenium Web Driver supports almost all the browsers like firebox, IE, chrome, Safari etc. Like Selenium RC, web Driver also doesn’t support record and playback. But here you don’t have to start the server before executing the test script. Using web Driver you can use any programming language in order to create your test script. The programming languages which are supported by web Driver are: java, .Net, python, php, Perl, ruby. You just need to know any one of the mentioned programming languages to create your test script in web Driver using programming language.
- Selenium Grid: Selenium Grid helps you to run multiple tests across different machines and browsers. It helps in minimizing the execution time. So you should use Selenium Grid if you want to reduce the execution time or if you want to run your tests across different browsers, machines, and operating systems.
But, there was a problem with Selenium Core, it was able to test only one domain at a time.
Disadvantage of Selenium core: It was able to test only one domain at a time.
Due to the Same Origin Policy restriction in selenium core, the tester had to install the web server on their local systems and the whole application under test. ThoughtWorks had another genius Paul Hammant , who created a server which acted as HTTP proxy and was successfully able to “trick” the browser that the application under test and selenium core come from the same domain. It was named as Selenium Remote Control or Selenium 1.
Disadvantage of Selenium RC : Selenium RC resolved the problem of Selenium Core but Selenium RC is slow as third party is involved.
Now the challenge was to reduce the execution time as much as possible. Patrick Lightbody developed Selenium Grid which successfully minimized the test execution time . Initially it was named as “Hosted QA”.
Selenium WebDriver :
Selenium RC was slow in test execution, so came selenium Webdriver. Here no test reports were getting generated but it was faster. To generate the report , TestNG can be used.
Selenium IDE was developed by Shinya Kasatani of Japan. Selenium Integrated Development Environment is a record and playback tool. Selenium IDE was given to Selenium Project in 2006 by Shinya.
- It is open source tool.
- It supports all the operating systems.
- It supports almost all the browsers like firebox, IE, Chrome, Safari.
- Supports the programming languages like java, Ruby, Python. Php, .Net, and C#.
- Multiple Tests can be run simultaneously.
- It supports mobile Devices.
Disadvantages Of Selenium
- It supports only web based applications.
- There is no default test report generation in selenium. The details result does not get generated.
- There is no feature like Recovery Scenario.
- Parameterization is not built-in, so the user has to rely on the programming language.
- Loop and data driven testing is not supported by Selenium IDE and the image verification is not available.