selenium 中的 ChromeDriver 和 WebDriver 有什么区别?
What is the difference between ChromeDriver and WebDriver in selenium?
如果我们创建:
ChromeDriver driver=new ChromeDriver();
chrome 个驱动程序方法将被执行。
如果我们创建:
WebDriver driver=new ChromeDriver();
再次 ChromeDriver
方法被执行 [根据方法覆盖]。
那为什么只在执行的时候才写后一个呢?
ChromeDriver driver = 新 ChromeDriver();
如果您使用 ChromeDriver driver = new ChromeDriver();
ChromeDriver 实例,我们将只能调用和执行关于由 ChromeDriver 实现并仅由 Chrome 浏览器 支持的方法。要与其他浏览器一起使用,我们必须专门创建个人 objects,如下所示:
FirefoxDriver driver = new FirefoxDriver();
InternetExplorerDriver driver = new InternetExplorerDriver();
WebDriver 界面
从Selenium的角度来看,WebDriver接口类似于第三方浏览器供应商,例如 Mozilla、Chrome、Internet Explorer, Safari 等必须遵守和实施相同的内容。这将 in-turn 帮助 end-users 使用公开的 API 编写通用代码并在所有可用浏览器上实现功能,而无需任何更改。
WebDriver driver = new ChromeDriver();
通过 WebDriver driver = new ChromeDriver();
我们正在创建 WebDriver 接口的一个实例,并将其 casting 到 ChromeDriverclass。所有浏览器 driver 都像:
实现了 WebDriver interface (actually the RemoteWebDriver class 实现了 WebDriver 界面 和 浏览器 Drivers 扩展 RemoteWebDriver)。因此,如果我们使用 WebDriver driver
,那么我们可以为我们想要自动化的所有浏览器使用已经初始化的 driver(作为常见的 object 变量) Mozilla、Chrome、InternetExplorer、Edge、Opera、Safari 如下:
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 接口 的实现。根据目前的做法,我们针对此接口编写 自动测试脚本 ,以便将来我们可以 换入 功能更齐全的 浏览器当有需求时
如果我们创建:
ChromeDriver driver=new ChromeDriver();
chrome 个驱动程序方法将被执行。
如果我们创建:
WebDriver driver=new ChromeDriver();
再次 ChromeDriver
方法被执行 [根据方法覆盖]。
那为什么只在执行的时候才写后一个呢?
ChromeDriver driver = 新 ChromeDriver();
如果您使用 ChromeDriver driver = new ChromeDriver();
ChromeDriver 实例,我们将只能调用和执行关于由 ChromeDriver 实现并仅由 Chrome 浏览器 支持的方法。要与其他浏览器一起使用,我们必须专门创建个人 objects,如下所示:
FirefoxDriver driver = new FirefoxDriver();
InternetExplorerDriver driver = new InternetExplorerDriver();
WebDriver 界面
从Selenium的角度来看,WebDriver接口类似于第三方浏览器供应商,例如 Mozilla、Chrome、Internet Explorer, Safari 等必须遵守和实施相同的内容。这将 in-turn 帮助 end-users 使用公开的 API 编写通用代码并在所有可用浏览器上实现功能,而无需任何更改。
WebDriver driver = new ChromeDriver();
通过 WebDriver driver = new ChromeDriver();
我们正在创建 WebDriver 接口的一个实例,并将其 casting 到 ChromeDriverclass。所有浏览器 driver 都像:
实现了 WebDriver interface (actually the RemoteWebDriver class 实现了 WebDriver 界面 和 浏览器 Drivers 扩展 RemoteWebDriver)。因此,如果我们使用 WebDriver driver
,那么我们可以为我们想要自动化的所有浏览器使用已经初始化的 driver(作为常见的 object 变量) Mozilla、Chrome、InternetExplorer、Edge、Opera、Safari 如下:
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 接口 的实现。根据目前的做法,我们针对此接口编写 自动测试脚本 ,以便将来我们可以 换入 功能更齐全的 浏览器当有需求时