Selenium Web Driver Architecture every QA Engineer must know if he is looking forward to start career as Automation QA.
In this post will share architecture of Selenium Web Driver and how your test script start performing multiple operations on Web browser.
Behind the scenes its not as easy as it looks. As there is web driver server specific to every browser running who actually responsible for converting test scripts commands into http commands and communication of messages exchanged via json wire protocol.
Selenium Web Driver Architecture contains 4 main components:
Selenium Client Library
JSON WIRE PROTOCOL Over HTTP
1. Selenium Client Libraries/Language Bindings
Selenium supports multiple libraries such as Java, Ruby, Python, etc. Selenium Developers have developed language bindings to allow Selenium to support multiple languages. If you wish to know more about libraries, kindly refer to the official site for Selenium libraries.
2. JSON WIRE PROTOCOL Over HTTP Client
3. Browser Drivers
Each browser contains a separate browser driver. Browser drivers communicate with the respective browser without revealing the internal logic of the browser’s functionality. When a browser driver has received any command then that command will be executed on the respective browser and the response will go back in the form of an HTTP response.
Selenium supports multiple browsers such as Firefox, Chrome, IE, Safari, etc.
In real time, you write a code in your UI (say Eclipse IDE) using any one of the supported Selenium client libraries (say Java).
// System Property for IEDriver
System.setProperty("webdriver.ie.driver", "D:\\IE Driver Server\\IEDriverServer.exe");
// Instantiate a IEDriver class.
WebDriver driver=new InternetExplorerDriver();
Once you are ready with your script, you will click on Run to execute the program. Based on the above statements, the IE browser will be launched and it will navigate to Next Generation Automation website.
Once you click on ‘Run’, every statement in your script will be converted as a URL, with the help of JSON Wire Protocol over HTTP. The URL’s will be passed to the Browser Drivers. Here, in this case, the client library (Java) will convert the statements of the script into JSON format and further communicate with the IE Driver.