如果我们在 Selenium 自动化脚本中仅使用 Chrome 浏览器,那么使用 ChromeDriver 而不是 WebDriver 有什么好处

What is benefit of using ChromeDriver over WebDriver if we are using only Chrome Browser in our Selenium Automation Script

我正在按以下方式使用 WebDriver 和 ChromeDriver 变量:

我的脚本仅限于 运行 测试用例,仅在 Chrome 驱动程序中,因此我绝不会使用任何其他浏览器进行测试。 因此,如果我在我的代码中选择 Line2 而不是 Line1,这会在任何功能或好处方面产生任何差异吗?(除了现有的 WebDriver 接口方法之外,寻找 ChromDriver Class 可以提供的任何附加功能) .

IWebDriver 是一个 InterfaceChromeDriver 是一个 class 实现 IWebDriver。此外,ChromeDriver 只能 用于 创建 Chrome 浏览器的实例,而 IWebDriver 可以代表任何受支持的浏览器:( Firefox、IE、Edge...)。

特别是在你的情况下,我会使用:ChromeDriver driver2 = new ChromeDriver(); 只是因为,正如你所说,你只会在测试中使用 Chrome

有一些很好的答案

ChromeDriver driver = 新 ChromeDriver();

如果您使用 ChromeDriver driver = new ChromeDriver(); ChromeDriver 实例,我们将只能调用和执行关于由 ChromeDriver 实现并仅由 Chrome 浏览器 支持的方法。要与其他浏览器一起使用,我们必须专门创建个人 objects,如下所示:

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

WebDriver Interface

Selenium的角度来看,WebDriver接口类似于第三方的协议]浏览器供应商,例如 MozillaChromeInternet ExplorerSafari 等必须坚持并实施相同的。这将 in-turn 帮助 end-users 使用公开的 API 编写通用代码并在所有可用 Browsers 中实现功能,而无需任何更改。


为什么WebDriver driver = new ChromeDriver();

通过 WebDriver driver = new ChromeDriver(); 我们正在创建 WebDriver 接口的实例,并将其 castingChromeDriverClass。所有 浏览器 DriversFirefoxDriver, ChromeDriver, InternetExplorerDriver, PhantomJSDriver, SafariDriver etc implemented the WebDriver interface (actually the RemoteWebDriver class 实现 WebDriver 接口 浏览器 Drivers 扩展 RemoteWebDriver)。因此,如果我们使用 WebDriver driver,那么我们可以为所有我们想要自动化的浏览器使用已经初始化的 driver(作为常见的 object 变量) Mozilla、Chrome、InternetExplorer、PhantomJS、Safari。

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

这个问题

现在,正如您提到的 will never use any other browser for my testing purpose,您可以回到 ChromDriver Class。但在这一点上值得一提的是 ChromeDriver 是一个独立的服务器,它实现了 WebDriver's wire protocol for Chromium. Chromium team is in the process of implementing and moving to the W3C standard.

所以继续前进,ChromeDriver, GeckoDriver, IEDriverServerOperaDriverSafariDriver各变体将仅符合 W3C 标准

您可以在 what is the difference between ChromeDriver and WebDriver in selenium?

中找到相关讨论