Different Types of WebDriver in Selenium

Profile picture for user devraj

Drivers are required for different types of browsers. Selenium WebDriver refers to both the language bindings and the implementations of the individual browser controlling code. This is commonly referred to as just WebDriver.

In other words, Selenium WebDriver is a web framework that permits you to execute cross-browser tests. This tool is used for automating web-based application testing to verify that it performs expectedly. Selenium WebDriver also allows you to choose a programming language to create test scripts. 

Selenium WebDriver Types

9 classes implements WebDriver interface:

  1. ChromeDriver: For Google Chrome. This is supported by chromium project. ChromeDriver is a standalone server that implements the W3C WebDriver standard. ChromeDriver is available for Chrome on Android and Chrome on Desktop (Mac, Linux, Windows and ChromeOS). Read more here
  2. ChromiumDriver: A WebDriver implementation that controls a Chromium browser running on the local machine. Do not confuse it with Chrome, Chromium is an open-source browser project that forms the basis for the Chrome web browser.  It is used as the base class for Chromium-based browser drivers (Chrome, Edgium). ChromeDriver class extends ChromiumDriver. Read more here
  3. EdgeDriver: For Microsoft Edge Browser. It extends ChromiumDriver. Read more here
  4. EventFiringWebDriver: For webdriver listener event. EventFiringWebDriver is a JavaClass, basically it is a wrapper around an arbitrary WebDriver instance which supports registering of WebDriverEventListener. Read more here
  5. FirefoxDriver: For Firefox browser. FirefoxDriver is implemented and supported by Mozilla. Read more here
  6. InternetExplorerDriver: The InternetExplorerDriver is a standalone server which implements WebDriver's wire protocol. This driver has been tested with IE 7, 8, 9, 10, and 11 on appropriate combinations of Vista, Windows 7, Windows 8, and Windows 8.1. As of 15 April 2014, IE 6 is no longer supported. The driver supports running 32-bit and 64-bit versions of the browser. It extends RemoteWebDriver. Read more here
  7. OperaDriver: For Opera Browser. It is supported by Opera Software. 
  8. RemoteWebDriver: Used with Selenium Grid. The RemoteWebDriver class implements the WebDriver interface to execute test scripts through the RemoteWebDriver server on a remote machine. It implements WebDriver, JavaScriptExecutor and several other interfaces. Read More here
  9. SafariDriver: For Mac Safari Browser. SafariDriver is supported directly by Apple. To support WebDriver without sacrificing a user’s privacy or security, Safari’s driver provides extra safeguards to ensure that test execution is isolated from normal browsing data and from other test runs. The driver is available in Safari 10 or later. It extends RemoteWebDriver. Read more here

Apart from above list, you might have listen some name like: 

  • Ghost Driver, Which is pure JavaScript implementation of WebDriver Wire protocol.
  • HTMLUnitDriver: HtmlUnitDriver is a WebDriver compatible driver for the HtmlUnit headless browser. You need to include Maven or Gradle dependency to work with it.
  • Selenium2Driver Which is used with PHP Mink and provides bridge for Selenium2 Webdriver.