Selenium is an Open Source Automation Testing Tool designed for testing web-based applications. It operates in different browsers and different operating systems. These days, Selenium automation testing has become highly popular among testers due to the range of benefits it offers. Besides, Selenium has gained great popularity among developers and software testers as the open-source portable framework for automation testing. This tool can automate browsers with particular browser bindings for automating web applications for testing. You can find more about Selenium by taking part in Selenium training in Bangalore.
Selenium is a suite of different tools that include Selenium RC, Selenium IDE, Selenium Grid, and Selenium WebDriver. Here comes a brief description of each of these tools:
- Selenium RC: Also known as Selenium 1, it was the major Selenium project for a long period before the merger of WebDriver brought up Selenium 2. Still, Selenium 1 is supported actively and it depends on JavaScript for automation. Besides, Selenium RC also supports JavaScript, Java, PHP, Ruby, Perl, Python, and C#.
- Selenium IDE: Selenium IDE or Selenium Integrated Development Environment is a Firefox plugin. Besides, it is also the simplest framework available in the Selenium Suite that allows the users to record and playback all the scripts.
- Selenium Grid: This is a Selenium tool that is used together with Selenium RC for performing tests on various machines against various browsers at the same time. It means, performing several tests in parallel against various machines running on different operating systems and different browsers.
- Selenium WebDriver: This is a browser automation framework, which accepts commands and then sends those to a browser. And it is implemented through one browser-specific driver. Selenium WebDriver directly controls the browser by communicating with it. And it supports C#, Java, Python, PHP, Ruby, and Perl.
Selenium WebDriver is known as the most vital component of the Selenium Tool’s Suite. The most updated version “Selenium 2.0” comes with integrated WebDriver API that offers a more concise and simpler programming interface. In WebDriver, the test scripts are developed by using any supported programming languages. And therefore, these can directly be run in most of the modern web browsers. Selenium WebDriver includes an in-built implementation of Firefox Driver. But the user needs to plug-in the browsers specific drivers to communicate and run the test. WebDrivers that are used most commonly include:
- Internet Explorer Driver
- Google Chrome Driver
- Safari Driver
- Opera Driver
- HTML Unit Driver
Some of the languages that WebDriver supports are Java, C#, PHP, Perl, Ruby, and Python. So, before you learn Selenium WebDriver, you must be well aware of any of these supported programming languages. For instance, you need to join Python Selenium training get ideas on both Selenium and Python. At present, Selenium WebDriver is mostly popular with C# and Java.
Selenium WebDriver Architecture:
Selenium WebDriver Architecture is about how Selenium internally works. The API of Selenium WebDriver includes interactions between browser drivers and browsers. The basic components of Selenium WebDriver architecture are:
- Selenium Language Bindings/ Selenium Client Libraries
- Browser Drivers
- JSON Wire Protocol
- Real Browsers
Now let’s learn a few things about these components:
- Selenium Language Bindings/ Selenium Client Libraries: Selenium developers build Selenium Language Bindings/Selenium Client Libraries to support several languages. Selenium Client Library includes languages like Ruby, Java, C#, Python, and so on. So, if choose to use the browser driver in Java, you can opt for Java bindings.
- Browser Drivers: Selenium uses drivers that are specific to each browser to establish a secure connection with the browser without the requirement of disclosing the internal logic of the functionality of the browser. Here the browser drivers are also particular to the language used for automation like C#, Java, etc. When a test script is executed using WebDriver, the following operations are internally performed.
- An HTTP request is created and then it is sent to the browser driver for every command of Selenium.
- Then the driver receives the request of HTTP through the HTTP server.
- Here the HTTP server decides on all the steps to perform the instructions that are performed on the browser.
- Then the execution status is sent back to the HTTP Server that is sent back subsequently to the automation script.
- JSON Wire Protocol: JSON or JavaScript Object Notation works as an open standard for exchanging data on the web. This supports data structures like array and object. Therefore, it is quite simple to read and write data from JSON. JSON Wire Protocol offers the transport mechanism for transferring data between a client and a server. Therefore, it works as an industry standard for different REST web services.
- Real browsers: The browsers that Selenium WebDriver supports include:
- Google Chrome
- Mozilla Firefox
- Internet Explorer
- Safari