Summary -

In this topic, we described about the below sections -

What is Selenium?

Selenium is one of the most widely used free open source Web UI (User Interface) automated testing framework.

Selenium supports to run our web application automate tests on different browsers, different platforms, and multiple programming languages.

Web applications can be tested directly by using the Selenium. However, Desktop applications or mobile applications cant tested directly. For testing any desktop (software) application or any mobile application testing, tools are required along with Selenium. There are many tools available for this purpose are - IBM’s RFT, HP’s QPT, Appium, etc,.

Who developed Selenium?

Selenium was originally created by Jason Huggins in 2004 at ThoughtWorks in Chicago. He builds the Core mode as "JavaScriptTestRunner" for the testing of an internal Time and Expenses application (Python, Plone) at ThoughtWorks. Seeing possible requirement of this idea to help other web applications, he made JavaScriptTestRunner open-source and later re-named as Selenium Core.

Selenium is a set of multipleof multiple tools and it had different corresponding developers as well.

Advantages -

Some of the selenium advantages are specified below –

  • Open Source Availability - Selenium is open-source and there is no licensing cost involved which is the major benefit.
  • Language and Framework Support - Supports test scripts in any of these programming languages - Java, Python, C#, PHP, Ruby, Perl & .Net.
  • Support Across Various Operating Systems - Supports to perform tests in any of these OS - Windows, Mac or Linux.
  • Multi-Browser Support - Supports to perform tests using any of these browsers - Mozilla Firefox, Internet Explorer, Google Chrome, Safari or Opera.
  • Easy Integrations - Supports to integrate with tools such as TestNG & JUnit for managing test cases and generating reports. Supports to integrate with Maven, Jenkins & Docker to complete Continuous Testing.
  • Reusability - Selenium automation test cases are reusable and can be tested across multiple browsers and different operating systems.
  • Flexibility - Test management is very important in testing lifecycle. It becomes easier and more efficient with regrouping and refactoring(selenium feature) of test cases. This helps developers and testers to add changes to their code quickly which reduces duplication, minimizing complications and improving maintainability.
  • Parallel Test Execution - We can execute multiple tests in parallel with the help of Selenium Grid. Executing test cases in parallel reducing the test execution time.
  • Less Hardware Usage - Selenium uses less hardware when compared with other vendor focused automation tools like QTP, UFT, SilkTest.
  • Easy to Learn and Use - learning selenium is very easy when compared to other tools as it supports various programming languages.
  • Constant Updates - As Selenium is supported by a community and they are constantly releasing constant updates and upgrades.

Disadvantages -

Below are some disadvantages of Selenium –

  • Extreme learning required – Testers need to write scripts to perform automation that requires deep programming knowledge.
  • No built-in image comparison
  • No technical support – There is no dedicated technical support for the product as the product is free open source suite.
  • No built-in reporting capabilities – The lack of automatically generating reports is a challenge in Selenium.
  • Time Consuming – Scripts need to be written manually which is more time consuming than compared to any automation testing tool.
  • Expertise Required - Selenium needs very experienced resources that are having good knowledge in framework architecture.
  • More Authoring time – Selenium requires more authoring time to create test cases.