In this section we will concentrate on WebDriver Architecture. Unlike Selenium IDE, WebDriver is the most power tool for automation Testing. In WebDriver, you can design the Test Script in any programming language like Java, C#, Python, Ruby etc. Also, you can integrate with any browser like Chrome, Mozilla Firefox, IE, Safari. See below diagram to understand the WebDriver Architecture.
In Selenium WebDriver, you are generally working with Browser Drivers in your scripts. Which is virtual. That virtual browsers will connect to real time browser through the HTTP Server when you run your script.
There are four components of Selenium WebDriver.
Selenium WebDriver supports Selenium client libraries to write script in multiple language like Java, Ruby, C#, Python etc. If you want to use browser driver in Python, then you need to us Python binding. You can download all binding from the official website of selenium by clicking here.
JSON wire Protocol
This is the standard for various REST web services which provides mechanism of Data Exchange. But JSON Wire Protocol is obsolete now and no longer used.
Selenium uses the driver to communicate with the browsers without revealing the internal logic of Browser functionality. This browser driver also specific to the language liker Java, C#, Ruby etc.
The following operations are performed when we execute the script for drive.
- HTTP request is created and sent to the browser driver for every selenium command.
- The driver receives HTTP request through HTTP Server.
- HTTP Server perform the instruction received from sender which are executed on browser.
- Execution status is reverted back to HTTP Server which is subsequently sent back to script.
Selenium supports multiple browsers. i.e.
- Internet Explorer
- Mozilla Firefox
- Safari etc.
In conclusion, If you want to use Chrome browser, you should use Chrome driver to establish the connection. Same for IE, Chrome or Safari