Selenium components and their architectural differences.
- khyati sehgal
- May 16, 2014
- 3 min read
I have seen many people asking a repetitive question in interviews if they see Selenium written on any Curriculum Vitae of a Test Engineer. Though I believe theoretical and conceptual knowledge is equally important as hand-on experience.
As a part of the hiring panel, I have observed this as a pet question of our hiring team: ‘How about the architectural difference between Selenium versions.’ Of course, once they are done with questions like ‘What you know all about selenium’ ?
Selenium generally comes in four different flavors:
Selenium IDE,
Selenium RC,
Selenium Grid and
Selenium Webdriver.
I will be sharing the best answer I got and the research which I did so as to understand the architecture of selenium.
Selenium Remote Control
Selenium RC or Selenium 1 is the first version of Selenium which is equally efficient as Selenium Webdriver. But there is a difference in architecture which both have. Along with a fact that selenium RC requires a server jar start-up every-time user wants to execute test cases/suite.
This is just a one-time effort that is required only in selenium RC, unlike Selenium Webdriver.

Selenium RC works on the principle of client – server . The client sends the request ( in Programming languages like Java , Python ,etc ) to the Server . The requests are in the form of commands like click , select , wait , etc.
And here Server takes the responsibility of granting the request to the Web browser. As we know Selenium is a Web Automation tool so the job will complete only when the browser is able to respond to the requests which client is asking for. At browser, the Selenium core is residing which actually performs Java Script injections and hence-forth requests get executed.
Selenium Webdriver
There are some differences which user can observe while working with Selenium Webdriver or if user is switching from Selenium RC to Selenium Webdriver. First of all , it does not need any over-head like server start up etc. If we talk about architecture then the major difference is Selenium Webdriver API is responsible for storing all commands and conversion of the commands in JSON format.
The flow is Client sends the request in a Programming language and sends the command to the selenium Webdriver. This request is then send to the Selenium API where-in Selenium API restores the commands in the JSON format and send the request from the JSon format to the http, RESTful service. This conversion happens on the browser level where-in all the commands will work. Commands like select , click , etc which will be placed in the test suite and test case.
Selenium Grid
Selenium Grid is used majorly when user wants to run test cases parallely at the same time on same browser or on different browsers .
Here, There would be a selenium grid -a hub where selenium server needs to be running and up all the time. All other machines which connect this machine will work as a client as this hub will work as a server to all the clients. The client will send the request to the server – hub and hub are responsible to cater all requests and respond on all requests which are coming from the clients.
Happy testing ! 🙂
Commentaires