What is the difference between ChromeDriver and WebDriver in selenium?

前端 未结 1 1821
遥遥无期
遥遥无期 2020-11-21 04:36

If we create :

ChromeDriver driver=new ChromeDriver();

chrome driver methods will be executed.

And if we create :

         


        
1条回答
  •  小鲜肉
    小鲜肉 (楼主)
    2020-11-21 05:23

    ChromeDriver driver = new ChromeDriver();

    If you use ChromeDriver driver = new ChromeDriver(); the ChromeDriver instance which will get created through that we will be only able to invoke and act on the methods implemented by ChromeDriver and supported by Chrome Browser only. To act with other browsers we have to specifically create individual objects as below :

    • FirefoxDriver driver = new FirefoxDriver();
    • InternetExplorerDriver driver = new InternetExplorerDriver();

    WebDriver Interface

    From Selenium perspective, the WebDriver Interface is similar like a agreement which the 3rd party Browser Vendors like Mozilla, Chrome, Internet Explorer, Safari, etc have to adhere and implement the same. This would in-turn help the end-users to use the exposed APIs to write a common code and implement the functionalities across all the available browsers without any change.


    WebDriver driver = new ChromeDriver();

    Through WebDriver driver = new ChromeDriver(); we are creating an instance of the WebDriver interface and casting it to ChromeDriver class. All the browser drivers like:

    • FirefoxDriver
    • ChromeDriver
    • InternetExplorerDriver
    • PhantomJSDriver
    • SafariDriver etc

    implemented the WebDriver interface (actually the RemoteWebDriver class implements WebDriver Interface and the Browser Drivers extends RemoteWebDriver). So if we use WebDriver driver, then we can use the already initialized driver (as common object variable) for all browsers we want to automate e.g. Mozilla, Chrome, InternetExplorer, Edge, Opera, Safari as follows:

    WebDriver driver = new FirefoxDriver();
    // or
    WebDriver driver = new ChromeDriver();
    // or
    WebDriver driver = new InternetExplorerDriver();
    // or
    WebDriver driver = new EdgeDriver();
    // or
    WebDriver driver = new OperaDriver();
    // or
    WebDriver driver = new SafariDriver();
    

    Trivia

    As per current scenario, we have to instantiate the implementations of WebDriver Interface directly. As per the current practice we write our Automated Test Script against this interface so that in future we may swap in a more fully featured Browser when there is a requirement for one.

    0 讨论(0)
提交回复
热议问题