</>

Technology

Selenium

Difficulty

Beginner

Interview Question

Explain the line of code: WebDriver driver = new FirefoxDriver();

WebDriver is an interface; FirefoxDriver is a class that implements it. This line creates a FirefoxDriver object referenced by the WebDriver interface type.

Answer

In the line WebDriver driver = new FirefoxDriver();:

Breaking it down:

Java
WebDriver  driver  =  new FirefoxDriver();
    ↑         ↑              ↑
Interface  Reference      Object creation
  type     variable       (concrete class)
  • WebDriver — is an interface (defined in org.openqa.selenium.WebDriver). It declares all browser automation methods like get(), findElement(), quit(), etc.
  • driver — is a reference variable of type WebDriver
  • new FirefoxDriver() — creates an object of FirefoxDriver class, which implements the WebDriver interface

Class hierarchy:

CODE
WebDriver (interface)
    ↑
RemoteWebDriver (class implements WebDriver)
    ↑
FirefoxDriver (class extends RemoteWebDriver)
ChromeDriver
EdgeDriver

Why this works — polymorphism: Since FirefoxDriver implements WebDriver, a FirefoxDriver object can be assigned to a WebDriver reference. This is standard Java polymorphism.

Practical meaning: When new FirefoxDriver() is called, Selenium launches the Firefox browser and returns a driver object through which all browser interactions happen.

Follow AutomateQA

Related Topics