It has different approaches to supporting test automation. It will automate web-based application through browsers. So only automating the web application is possible with selenium tool suite but not the other applications such as desktop, mobile and client-server applications.
Selenium Tool Suite
Selenium was created with combining different software tools. Each of the tools has different roles and functionalities. Following are the tools that include within the selenium tool suit.
1. Selenium RC (Remote Control) or Selenium 1
Although selenium RC was the main project for a long time until the selenium 2 was released. It was officially deprecated when selenium version 2 was released. It will support mostly in maintenance mode that will provide some feature that is not available in Selenium 2.
2. Selenium IDE (Integrated Development Environment)
Selenium IDE is a rapid prototyping tool for building test scripts within very less amount of time. It allows you to record, edit and debug the test case by providing the very simple to use components. This tool will be most helpful for beginners to learn the commands used by selenium while recording the test case. Although it was available as Firefox addon for a long time, it also available on chrome recently.
With this tool, you can easily record the test case and able to play back any number of time whenever you will require. You can easily export the recorded scripts as reusable scripts in one of any programming languages that support. Although it was very simple and easy to use tool for beginners, it’s having some limitations. It only allows you to record and playback very simple test cases. It will not possible to test dynamic websites or web applications. It’s neither be scripted using any programming logic not support data-driven testing.
3. Selenium Grid
Selenium grid is the part of selenium version1 that combined with selenium RC to scale for large test suit and able to run tests on remote machines. We can execute multiple test cases at the same time on different remote machines. If you run your test cases on multiple environments, you will use the different remote machine to run the tests at the same time.
While testing with selenium grid, one server acts as the hub where other machines contact the hub for obtaining browser access. This ability to run test cases on remote machine may be most helpful for spreading the testing load across several machines having different environments or platforms. So this feature of selenium grid will help you to speed up your test automation process.
4. Selenium Webdriver
Selenium web driver is the latest addition among the tools in selenium tool suite. It is the upgraded version of Selenium RC. So it is much faster than selenium RC since it makes direct calls to the browsers. Unlike the selenium RC, selenium webdriver does not require any special server for running or executing test cases.
Selenium webdriver supports all of the main browsers such as Mozilla Firefox, Google Chrome and Internet Explorer and Safari. It allows you to write test scripts on different programming languages such as Java, C#, Ruby, Python, Perl etc. Although it overcomes all the limitations of Selenium RC, generating a detailed test report is not possible with selenium webdriver yet.
5. Selenium 2
In 2008 Selenium and Webdriver were merged together and become a powerful tool called Selenium 2. It can overcome all the limitations of all other selenium tools. You can use this tool for automating more complex object-oriented applications.
How To Choose Right Tool From Selenium Toolsuite
After knowing about all the tools included on selenium toolsuite mentioned above, you may want to know that which tool should choose for your test automation project. Let me explain something about it.
If you are new to test automation and you don’t have so much knowledge on programming or scripting language, you may start with selenium IDE. It will help you to get some knowledge of basic selenium commands like type, open, clickAndWait etc. and the locators like id, name, CSS selectors etc. With the use of Selenium IDE, you will be able to create and run simple test cases quickly without any programming knowledge within a short period of time. I do not recommend to use Selenium IDE for all the test automation projects.
Since Selenium IDE can only be used for short and simple test cases. You may use Selenium RC for the purpose of testing more complex projects than the projects on Selenium IDE. It will be most useful if you need to run test cases on different browsers and different operating systems. If you need to run multiple parallel tests with Selenium RC Selenium Grid will be most required to complete your project as soon as possible.
I would recommend to you Selenium webdriver for automating the dynamic web applications using your custom programming language. If you are experienced with test automation and building a new test project from scratch, Selenium 2 will be the best option for continuing the project.