Selenium Java Architecture-Class/interface Level

Selenium Architecture

1. 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.

2. 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, chromedriver.exe for chrome and IEDriverServer.exe for internet explorer.

3. Driver executables uses a protocol called JSON Wire protocol to communicate with related browsers. (JSON stands for Java Script Object Notation)

Selenium Java Architecture-Class/interface Level

1. SearchContext is the super most interface present in Selenium WebDriver.

2. An interface called WebDriver extends SearchContext interface.

3. A total of 13 interfaces are available in Selenium , which is implemented by a super most class called RemoteWebDriver.

4. RemoteWebDriver is again extended by few browser specific child classes such as,
FirefoxDriver class to automate on Firefox browser.
ChromeDriver class to automate on Chrome browser,
InternetExplorerDriver class to automate on IE and so on

 All the above mentioned interfaces and classes are present in a package called “org.openqa.Selenium ”. To view any information about Selenium interfaces, classes and methods, navigate to the below page. /tree/master/java/client/src/org/openqa/Selenium . Highlighted below in red is the navigation path.

Post a Comment