×
☰ See All Chapters

Selenium WebDriver Architecture Diagram

selenium-webdriver-architecture-0
 

Language binding or Client binding

Since selenium supports multiple languages such as Java, Python, C# etc., we can develop automation scripts in all the supported languages. This is known as language binding or Client binding.

Selenium Standalone Server

When we execute the selenium code, request goes to the Selenium Standalone Server (also known as Selenium WebDriver Server), which further process the request based on the input received from the client binding and perform specific actions on the respective browsers using the browser specific driver executables,

E.g.: geckodriver.exe for firefox browser and chromedriver.exe for chrome browser and so on…

Driver executables

Driver executables uses a protocol called JSON Wire protocol to communicate with related browsers. (JSON stands for Java Script Object Notation). We still use HTTP as the main transport mechanism. We communicate to the browsers and have simple client server transport architecture with this JSON Wire Protocol.

JSON Wire Protocol

JSON Wire Protocol is a simple client server transport mechanism. It uses a REST like API to transport all the necessary elements to the code that controls it. The Selenium server or browser, depending on what is processing, uses the JSON Wire commands to break down the JSON object and then does what it needs to.

 


All Chapters
Author