Selenium is an interface and the Class like FirefoxDriver, ChromeDriver, InternetExplorerDriver, SafariDriver and AndroidDriver which implement the Selenium interface has their own implementation for the all the abstract methods in Selenium interface. So all the Classes are implementing the same interface to have the same methods across all the browsers but the methods implemented (coding of method body) will be different for FirefoxDriver (to make the automation work for Firefox Browser) and ChromeDriver (methods implemented differently to make the automation work on Chrome Browser) WebDriver driver = new FirefoxDriver(); Or WebDriver driver = new ChromeDriver(); Here, WebDriver Is Interface and FirefoxDriver and ChromeDriver are the class files where WebDriver Interface Is Implemented.