Before getting hands on code, we should learn about Selenium. Learning about the architecture gives deeper understanding on the language.
- Language Bindings – The Speaker/The Instructor :
As you already know Selenium is multi-linguistic it needs some kind of bindings for each language. That forms your Selenium Language Bindings.
The JAR (Java ARchive) files downloaded from the selenium website forms the Language Bindings.
- Selenium API – The Translator :
This Application Programming Interface is the working logic between the code that you have written and the WebDriver.
Selenium API is like a translator that translates your code to Selenium WebDriver code. So the translated format have a standard set of API. So we will have a common set of commands to work with.
The API translates the code to Stateless Programming Interface (SPI)
- JSON Wire Protocol – The Transporter:
You know what’s a protocol. It’s set of rules that governs a process. Here the translated commands needs to be transported to the Browsers. JSON Wire protocol helps you in that.
- Browser Drivers – Receivers and Executioners:
Each browser has different browser driver. (That was also downloaded by you in the previous blog post)
Their work is to receive the commands and act on it. This gives the output in the form of HTTP response. (Duh!! That’s why you see the outputs in your browser)
Hope you learned the architecture in a simple way. 🙂