</>

Technology

Selenium

Difficulty

Beginner

Interview Question

What are the types of WebDriver APIs available in Selenium?

Selenium provides browser-specific WebDriver implementations: ChromeDriver, FirefoxDriver, IEDriver, SafariDriver, EdgeDriver, HtmlUnitDriver, OperaDriver, and RemoteWebDriver.

Answer

Types of WebDriver APIs in Selenium

Selenium provides browser-specific driver implementations, each communicating with its target browser natively.

Available WebDriver implementations:

1. FirefoxDriver (geckodriver)
Java
System.setProperty("webdriver.gecko.driver", "path/to/geckodriver");
WebDriver driver = new FirefoxDriver();
2. ChromeDriver
Java
System.setProperty("webdriver.chrome.driver", "path/to/chromedriver");
WebDriver driver = new ChromeDriver();
3. InternetExplorerDriver (IE Driver)
Java
System.setProperty("webdriver.ie.driver", "path/to/IEDriverServer.exe");
WebDriver driver = new InternetExplorerDriver();
4. EdgeDriver
Java
System.setProperty("webdriver.edge.driver", "path/to/msedgedriver");
WebDriver driver = new EdgeDriver();
5. SafariDriver
Java
// No System.setProperty needed on Mac
WebDriver driver = new SafariDriver();
6. HtmlUnitDriver (headless, fastest)
Java
WebDriver driver = new HtmlUnitDriver();  // No browser UI
// Fastest implementation — runs in memory, no browser window
7. OperaDriver
Java
OperaOptions options = new OperaOptions();
options.setBinary("/path/to/opera");
WebDriver driver = new ChromeDriver(options);  // Opera uses Chromium engine
8. RemoteWebDriver (for Selenium Grid)
Java
WebDriver driver = new RemoteWebDriver(
    new URL("http://localhost:4444/wd/hub"),
    new ChromeOptions()
);
9. AndroidDriver (Appium-based)
Java
// For mobile browser automation
DesiredCapabilities caps = new DesiredCapabilities();
caps.setCapability("platformName", "Android");
WebDriver driver = new AndroidDriver(new URL("http://localhost:4723"), caps);

10. iPhoneDriver For Safari on iOS — typically handled via Appium.

Selenium 4 — Modern approach (WebDriverManager):

Java
// No need to set system property manually
WebDriverManager.chromedriver().setup();
WebDriver driver = new ChromeDriver();

Summary list:

  1. FirefoxDriver (geckodriver)
  2. InternetExplorerDriver
  3. ChromeDriver
  4. HtmlUnitDriver (headless, fastest)
  5. OperaDriver
  6. SafariDriver
  7. EdgeDriver
  8. AndroidDriver (via Appium)
  9. iPhoneDriver (via Appium)
  10. RemoteWebDriver (Grid)

Follow AutomateQA

Related Topics