Selenium Packages: IDE, Remote Control and WebDriver: Which One Do I Choose?
Selenium is a popular testing suite that was created by Jason Huggins in 2004. It has grown a lot in complexity since then, with contributions from many experts after becoming an open source product. The Selenium Testing Packages that are platform and browser independent offer many choices to testers, who can choose the right one according to their requirement. Here’s a quick look at the packages offered by Selenium, to help choose the right one for your needs.
Selenium IDE is a Firefox add-on that allows recording, editing and debugging of tests. It was earlier known as the Selenium Recorder. The scripts that are recorded in Selenium IDE are created using the testing language Selenese. Selenium IDE offers the following advantages:
- It is the ideal choice for beginners and for those looking to execute simple record-replay test cases in their test environment.
- The environment includes the Selenium Core that allows an easy record and playback of tests in the actual environment that they would run in.
- It contains a context menu that allows testers to select from a list of commands for any selected UI element.
- It allows for quick editing of tests, and also contains an autocomplete function that covers all common test commands.
- It serves as a great tool for beginners to learn Selenium script syntax.
Selenium IDE would be an ideal choice when you need to quickly test a small change before putting it into a regression testing suite. Selenium IDE might not suit your requirement if you are looking at developing such an extensive suite of test cases, or if you need to use languages other than Selenese.
Selenium Remote Control
The Selenium Remote Control or RC was the main package offered by Selenium for a long time, and was also referred to as Selenium 1. It provides a server written in Java that uses client libraries to accept commands for the browser via HTTP. It allows seamless integration of Selenium into existing test frameworks, as it allows writing of tests for web applications in any programming language. Selenium RC has 2 components:
- A server that launches automatically as well as kills browsers. It also acts as a HTTP proxy for the Selenese commands. It interprets these and runs them to execute the test case.
- Client libraries for your favorite programming language, that offer APIs to convert each command into the corresponding Selenese one. After passing your command to the server to enable running the test case, it also receives the result of the run that could be stored and interpreted.
Selenium Remote Control could be a great choice for testing complex AJAX-based web user interfaces. Many languages including Java, C#, Python, Ruby, Perl and PHP are supported by Selenium RC. This package is no longer in development though existing versions are being supported for maintenance. This is where the next and currently very popular package of Selenium comes in.
The Selenium WebDriver is the successor to the Selenium RC, and addresses some limitations in the RC API. It is also referred to as Selenium 2, and was created by adding the WebDriver API functionality to Selenium 1. It is designed in a simpler and more concise manner and offers the following advantages:
- Selenium WebDriver is a compact Object Oriented API. This means that the functionality is much better organized using classes and that makes it easier to use. An action that requires extensive amount of coding in Selenium 1 could be achieved much more efficiently using the classes offered by Selenium WebDriver.
- It drives the browser much more effectively, by using the browser’s native support for automation. This encourages the development of more complex test cases to allow a more extensive testing of the interface.
- It supports dynamic webpages, where some small elements of a page might have changed but the entire page might not be reloaded.
- Many browser vendors including Opera, Mozilla and Google actively participate in WebDriver’s development, which ensures that test cases involving these browsers would be well supported.
It may seem like WebDriver is still in development and not as stable as RC, but this would not remain the case for long. It is definitely set to be a stable and compact testing solution that would only increase in popularity in the future!
We hope this short summary of the Selenium packages has made the functionalities offered by each of them clear to you. Do let us know your choice, and your experience with using Selenium as a solution for your testing needs.