Selenium is an open source tool for automated testing of web applications across different browsers and platforms. It consists of following components:
- Selenium WebDriver – It is an API which allows you to pro-grammatically interact with different browsers the way a real user would.
- Selenium IDE – It is a record and playback tool mostly used for prototype applications.
- Selenium Grid – It is a server which allows tests to use web browser instances running on remote machines.
Why the name Selenium?
While Selenium was being developed, there was another popular automation framework which was developed by Mercury. The name Selenium comes from a joke made by Huggins (creator of Selenium) in an email, mocking a competitor named Mercury, saying that you can cure mercury poisoning by taking selenium supplements. The others that received the email took the name and ran with it.
Advantages of using Selenium as an Automation Tool:
- Open Source: The biggest advantage of Selenium is that it is an open source tool and can be downloaded for free. It is widely supported by the Selenium community.
- Multiple Browsers Support: Selenium supports automation on all the popular browsers like Chrome, Firefox, Safari, IE, Edge and Opera.
- Multiple OS Support: Selenium can operate and support across multiple Operating Systems (OS) like Windows, Mac, Linux, and UNIX. Selenium scripts created in one platform like Windows can be executed over any another platform like Linux.
- Parallel Test Execution: With the help of Selenium Grid, multiple tests can be executed in parallel across different machines which reduces the overall execution time.
- Ease of Implementation: Selenium provides a user-friendly interface that helps create and execute test scripts easily and effectively. It helps users to script their own extensions that make them easy to develop, customized actions and even manipulate at an advanced level.
Disadvantages of Selenium:
- Selenium is not a complete, comprehensive solution to fully automating the testing of web applications. It requires third-party frameworks, language bindings and so on to be truly effective.
- Selenium cannot automate desktop applications.
- Selenium doesn’t have any Object Repository which can store all objects for the web application.
- Selenium doesn’t provide any reporting by default and is dependent on other framework integrations like TestNG or Cucumber.
Selenium vs UFT/QTP:
- UFT is a commercial tool and it requires a license which is very expensive but Selenium is an open-source tool and it is completely free to use.
- UFT can automate web- based as well as desktop applications but Selenium can automate web applications only.
- UFT only supports VB Script but Selenium supports many programming languages like Java, Python, C#, Ruby,etc..
- UFT comes with a in-built object repository but Selenium doesn’t have any in-built object repository.
- UFT offers very good technical support but Selenium is supported only by the open source community.
- Script development and maintenance is easier in UFT compared to Selenium
- UFT has seamless integration with test management tool like Quality Center but Selenium doesn’t have any such integrations.
- In UFT, Object Oriented Approach to Test Automation is challenging but Selenium supports mature Object Oriented Language like Java.