Selenium runs in many browsers and operating systems. Can be controlled by many programming languages and testing frameworks.
* Create by developers at ThoughtWorks
* Released publically as an Open Source project on OpenQA
* Selenium is a test tool for web applications.
* Selenium tests run directly in a browser.
* Runs on Windows, Linux, and Macintosh.
* Runs in Internet Explorer, Mozilla and Firefox.
* Enables Browser Compatibility Testing.
* Enables System Functional Testing.
How it works
Core runs the tests and interrogates the DOM
RC server and Core communicate via AJAX
Language hooks communicate with the RC server.
Selenium comes in four different flavors and they are as follows
Selenium‐IDE is the Integrated Development Environment for building Selenium test cases.
It is Firefox add‐on and provides an easy‐to‐use interface for developing and running individual test cases or entire test suites.
Selenium‐IDE has a recording feature, which will keep account of user actions as they are performed and store them as a reusable script to play back.
It also has a context menu (right‐click) integrated with the Firefox browser, which allows the user to pick from a list of assertions and verifications for the selected location.
Selenium‐IDE also offers full editing of test cases for more precision and control.
Although Selenium‐IDE is a Firefox add‐on, tests created in it can also be run against other browsers by using Selenium‐RC and specifying the name of the test suite on the command line.
However, because of its simplicity, Selenium IDE should only be used as a prototyping tool. If you want to create more advanced test cases, you will need to use either Selenium RC or WebDriver.
Desired to gain proficiency on Selenium? Explore the blog post on Selenium Training to become a pro in Selenium.
Selenium‐RC allows the test automation developer to use a programming language for maximum flexibility and extensibility in developing test logic.
For instance, if the application under test returns a result set, and if the automated test program needs to run tests on each element in the result set, the programming language’s iteration support can be used to iterate through the result set, calling Selenium commands to run tests on each item.
Selenium‐RC provides an API (Application Programming Interface) and library for each of its supported languages: HTML, Java, C#, Perl, PHP, Python, and Ruby.
Selenium Grid is a tool used together with Selenium RC to run parallel tests across different machines and different browsers all at the same time. Parallel execution means running multiple tests at once.
Enables simultaneous running of tests in multiple browsers and environments.
Saves time enormously.
Utilizes the hub-and-nodes concept. The hub acts as a central source of Selenium commands to each node connected to it.
Check out the top Selenium Interview Questions now!
Selenium‐Grid allows the Selenium‐RC solution to scale for large test suites or test suites that must be run in multiple environments.
With Selenium‐Grid, multiple instances of Selenium‐RC are running on various operating system and browser configurations;
Each of these when launching register with a hub.
When tests are sent to the hub they are then redirected to an available Selenium‐RC, which will launch the browser and run the test.
This allows for running tests in parallel, with the entire test suite theoretically taking only as long to run as the longest individual test.
Selenium Web Driver/Selenium 2.0
The WebDriver proves itself to be better than both Selenium IDE and Selenium RC in many aspects.
Selenium 2.0 has many new exciting features and improvements over Selenium 1. 0
The primary new feature is the integration of the WebDriver API. This addresses a number of limitations along with providing an alternative, and simpler, programming interface.
The goal is to develop an object‐oriented API that provides additional support for a larger number of browsers along with improved support for modern advanced web‐app testing problems.
For an Indepth knowledge on Selenium, click on below