在硒中ChromeDriver和WebDriver有什么区别? [英] what is the difference between ChromeDriver and WebDriver in selenium?

查看:581
本文介绍了在硒中ChromeDriver和WebDriver有什么区别?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如果我们创建:

ChromeDriver driver=new ChromeDriver();

将执行chrome驱动程序方法。

chrome driver methods will be executed.

如果我们创建:

WebDriver driver=new ChromeDriver();

再次 ChromeDriver 方法执行[按照方法覆盖]。

again ChromeDriver methods are executed[as per method overriding].

那么为什么我们只在执行时编写后者?

Then why we write latter one only while executing?

推荐答案

ChromeDriver驱动程序=新ChromeDriver();



如果您使用 ChromeDriver驱动程序=新ChromeDriver(); ChromeDriver 实例将通过该实例创建,我们将只能调用并执行实现的方法ChromeDriver 仅受 Chrome浏览器支持。要与其他浏览器一起使用,我们必须专门创建单个对象,如下所示:

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();

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

Selenium 透视图, WebDriver界面类似于第三方浏览器供应商的协议,如 Mozilla Chrome Internet Explorer Safari 等必须遵守并实施相同的内容。这将反过来帮助最终用户使用公开的API编写公共代码,并在所有可用的浏览器中实现功能而不做任何更改。

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(); 我们正在创建一个实例 WebDriver 界面和投射 ChromeDriver Class 。所有 浏览器驱动程序 ,如 FirefoxDriver ChromeDriver InternetExplorerDriver PhantomJSDriver SafariDriver 等实施 <强> 的webdriver 界面(实际上 RemoteWebDriver 类实现 WebDriver接口 浏览器驱动程序扩展 RemoteWebDriver )。因此,如果我们使用 WebDriver驱动程序 ,那么我们可以使用已经初始化的驱动程序(作为公共对象变量)我们想要自动化的浏览器,例如Mozilla,Chrome,InternetExplorer,PhantomJS,Safari。

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, PhantomJS, Safari.

WebDriver driver = new FirefoxDriver();
driver = new ChromeDriver();
driver = new FirefoxDriver();
driver = new SafariDriver();






Trivia WebDriver Interface



根据当前情况,我们必须实例化 WebDriver接口的实现 直接。根据目前的做法,我们针对此接口编写自动测试脚本,以便将来我们可以交换更多功能齐全的浏览器,如果需要一个。


Trivia WebDriver Interface

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.

这篇关于在硒中ChromeDriver和WebDriver有什么区别?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆