Selenium is an open source automated testing suite for web applications across different browsers and platforms.
- Different browsers such as Google Chrome
- Internet Explorer 7, 8, 9, 10, and 11 on appropriate combinations of Vista, Windows 7, Windows 8, and Windows 8.1. As of April 15 2014, IE 6 is no longer supported. The driver supports running 32-bit and 64-bit versions of the browser where applicable
- Firefox: latest ESR, previous ESR, current release, one previous release
- Safari, Opera, HtmlUnit, phantomjs
- Android (with Selendroid or appium)
- iOS (with ios-driver or appium)
- Different OS such as Windows, OS Linux.
- Different languages such as C#, Java, Perl, PHP, Python, Ruby
Components of Selenium
Selenium Integrated Development Environment (IDE)
This is used to develop Selenium test cases. It’s an easy-to-use Chrome and Firefox extension and is generally the most efficient way to develop test cases. It records the user’s actions in the browser for you, using existing Selenium commands, with parameters defined by the context of that element. This is not only a time-saver but also an excellent way of learning Selenium script syntax.
Selenium Remote Control (RC)
- A server which automatically launches and kills browsers, and acts as an HTTP proxy for web requests from them.
- Client libraries for your favorite computer language.
Selenium Remote Control is great for testing complex AJAX-based web user interfaces under a Continuous Integration system. It is also an ideal solution for users of Selenium IDE who want to write tests in a more expressive programming language than the Selenese HTML table format
It allows to run the tests on different machines against different browsers in parallel. That is, running multiple tests at the same time against different machines running different browsers and operating systems. Essentially, Selenium-Grid support distributed test execution. It allows for running your tests in a distributed test execution environment.
WebDriver is designed to provide a simpler, more concise programming interface in addition to addressing some limitations in the Selenium-RC API. Selenium-WebDriver was developed to better support dynamic web pages where elements of a page may change without the page itself being reloaded. WebDriver’s goal is to supply a well-designed object-oriented API that provides improved support for modern advanced web-app testing problems.