WebDriver the Middle-Man

Automation script gives browser command to simulate user behaviors, but how they 2 talk and understand each other? It is with Selenium’s webdriver and language-binding as intepreters:

Figure 1: WebDriver Architecture

Every browser has its own automation interface that allows user to perform actions.
Selenium Webdriver ‘talks’ to this automation interface, and Language Binding serves as an interpreter between our automation code and WebDriver. Then WebDriver talks to Browser’s automation interface to drive the browser accordingly.

Selenium webdriver serves as programming interface on top of this automation interface, and organizes actions into logical chunks for a user,
e.g. navigate to a page, click on an element. In another word, Selenium WebDriver can ‘talk’ to browser’s automation interface directly and thus drive the browser via this native browser interface under the hood.

So to run selenium automation, we at least need: WebDriver + Language-Binding

Then if you want to talk to a remote browser(ie your script and browser are on separate machines), then we need remoteWebDriver

For parallel Run, we need Selenium Grid

For play and Record, we need to install firefox plugin: selenium IDE