Introduction to Selenium

Reading Time: 2 minutes

What is Selenium?

Selenium is an open source test suite which is used for automation testing of web applications across different browsers and platforms. Test automation means using a software tool to run repeatable tests against the application to be tested. Selenium focuses on automating web-based applications.
Selenium is not just a single tool but a suite of software’s, each catering to different testing needs of an organization. It has four components:

  • Selenium Integrated Development Environment (IDE)
  • Selenium Remote Control (RC)
  • WebDriver
  • Selenium Grid

Selenium Integrated Development Environment (IDE)

Selenium IDE is the simplest tool in the Selenium suite. It is a Firefox and Chrome extension that creates tests very quickly through its record and play functionality. The user’s interactions with the web browser are recorded and test cases are created based on these recordings. You can play back these steps repeatedly.
Because of its simplicity, Selenium IDE should only be used as a prototyping tool, not an overall solution for developing and maintaining complex test suites.

Selenium Remote Control (RC)

Selenium Remote Control has been developed to overcome the issue of Same Origin Policy (SOP). Under this policy, a JavaScript code cannot access the elements of other domain that are different from its parent domain.

For example, the HTML code in http://www.google.com uses a JavaScript program “randomScript.js”. The same origin policy will only allow randomScript.js to access pages within google.com such as google.com/mail, google.com/login, or google.com/signup. However, it cannot access pages from different sites such as knoldus.com because they belong to different domains.

Before Selenium RC came into existence, testers used to locally install the copies of Selenium Core (a JavaScript program) and the web server containing the web application being tested so they would belong to the same domain. So it was decided to create a server that will act as an HTTP proxy to “trick” the browser into believing that Selenium Core and the web application being tested come from the same domain. This system became known as the Selenium Remote Control or Selenium 1.

Selenium WebDriver

Selenium WebDriver was created as the replacement for Selenium RC. Unlike IDE and RC, Selenium WebDriver provides an interface for creating and executing test cases. These test cases are created in such a way that, web page elements can be easily identified and necessary actions are performed.
In 2008, Selenium WebDriver has been merged with Selenium RC and evolved as a more powerful tool called Selenium 2. WebDriver is much faster than RC because it directly calls the browser whereas RC needs a server to interact with the browser and depends on javascript for automated web application testing. Each web browser has its own webdriver which are

  • Chrome Driver (For Google Chrome)
  • Gecko Driver (For Firefox)
  • Safari Driver (For Safari)
  • IE Driver (For Internet Explorer)
  • Opera Driver (For Opera)
  • HTML Unit Driver (Headless Browser)

Selenium WebDriver supports various languages which includes Java, C#, Perl, PHP, Python, JavaScript and Ruby.

Selenium Grid

Selenium Grid is a part of the Selenium Suite that specializes in running multiple tests across different browsers, operating systems, and machines in parallel. Selenium Grid uses a hub-node concept where you only run the test on a single machine called a hub, which controls the test cases running on different browsers inside different operating systems, but the execution will be done by different machines called nodes.

Here comes the end of the basic introduction of Selenium QA tool and its components.

References:
Selenium Official Documentation

Discover more from Knoldus Blogs

Subscribe now to keep reading and get access to the full archive.

Continue reading