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

查看:199
本文介绍了selenium 中的 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 driver = new ChromeDriver();

如果您使用 ChromeDriver driver = new 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();

Selenium 的角度来看,WebDriver Interface 类似于 Mozilla 等 3rd 方浏览器供应商的协议.>、ChromeInternet ExplorerSafari 等都必须遵守并实施相同的内容.这反过来又会帮助最终用户使用公开的 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 类.所有浏览器驱动程序都喜欢:

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:

实现了WebDriver 接口(实际上是 RemoteWebDriver 类实现WebDriver InterfaceBrowser Drivers 扩展RemoteWebDriver).因此,如果我们使用 WebDriver 驱动程序,那么我们可以将已经初始化的 驱动程序(作为公共对象变量)用于我们想要自动化的所有浏览器,例如Mozilla、Chrome、InternetExplorer、Edge、Opera、Safari 如下:

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

<小时>

琐事

根据目前的情况,我们必须直接实例化WebDriver Interface 的实现.按照目前的做法,我们针对此界面编写自动化测试脚本,以便将来我们可以交换功能更全面的浏览器.是一个要求.


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.

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

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