All implementations of WebDriver that communicate with the
browser, or a RemoteWebDriver server use a common wire protocol. This wire
protocol defines a RESTful web service using JSON over HTTP.
So each WebDriver command is mapped to an HTTP method via
the WebDriver service, and then passed on to the HTTP Command Processor to
communicate with the browser. The Command responses are returned as HTTP/1.1
response messages via the WebDriver service.
Different drivers, such as the Firefox Driver and the IE
Driver, have different implementations to accomplish the above.
The Selenium WebDriver architecture document linked below
goes into further details on how these are implemented and how WebDrvier commands
flow through to the browser and back. Read section 16.6 for details on the
Firefox Driver.
Step 1. Automation Script is written using Client binding
for different languages
Step 2. Once Test execution is started
Step 3. Browser driver is created
Step 3. Respective Driver.exe file starts “HTTP server” and starts
listening for HTTP requests.
Step 4. A new HTTP request Creates, as each Selenium Method
contains is mapped to respected webDriver API
Step 5. HTTP request is sent to the HTTP server
Step 6. HTTP server determines the steps needed for
implementing the Selenium command
Step 7. The implementation steps are sent to the browser
Step 8. The HTTP server send the execution status back to
the test script