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:
- ✓FirefoxDriver (geckodriver)
- ✓InternetExplorerDriver
- ✓ChromeDriver
- ✓HtmlUnitDriver (headless, fastest)
- ✓OperaDriver
- ✓SafariDriver
- ✓EdgeDriver
- ✓AndroidDriver (via Appium)
- ✓iPhoneDriver (via Appium)
- ✓RemoteWebDriver (Grid)
