Selenium Webdriver's Location In A TestFramework Stack

  • A WebBrowser is a front-end to a website http server
  • A WebDriver is a front-end to a specific WebBrowser that controls interaction with a website
  • Selenium-Server is a front-end to a WebDriver that provides API calls to interact the WebDriver over HTTP
    • Theoretically, Selenium Server provides a library of actions/listeners/utils and the WebDriver provides the custom browser implementation
    • Selenium Server does nothing without a WebDriver
  • Language bindings provide a language-specific API and interface to Selenium Server API
    • The language bindings expose/translate API calls to Selenium Server
    • Available Selenium Server functions are dependent on the Language Binding
    • Language bindings can differ in their class hierarchies, API structure, and available functions.
  • SeleniumCore = Webdriver: chromedriver.exe, iedriver.exe, geckodriver.exe
  • SeleniumServer = selenium-server-version.jar
  • LanguageBindings = native language library that exposes SeleniumServer API