如果我们在 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 变量:
第 1 行:
WebDriver driver1 = new ChromeDriver();
第 2 行:
ChromeDriver driver2 = new ChromeDriver();
我的脚本仅限于 运行 测试用例,仅在 Chrome 驱动程序中,因此我绝不会使用任何其他浏览器进行测试。
因此,如果我在我的代码中选择 Line2 而不是 Line1,这会在任何功能或好处方面产生任何差异吗?(除了现有的 WebDriver 接口方法之外,寻找 ChromDriver Class 可以提供的任何附加功能) .
IWebDriver
是一个 Interface
,ChromeDriver
是一个 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接口类似于第三方的协议]浏览器供应商,例如 Mozilla、Chrome、Internet Explorer, Safari 等必须坚持并实施相同的。这将 in-turn 帮助 end-users 使用公开的 API 编写通用代码并在所有可用 Browsers
中实现功能,而无需任何更改。
为什么WebDriver driver = new ChromeDriver();
通过 WebDriver driver = new ChromeDriver();
我们正在创建 WebDriver 接口的实例,并将其 casting 到 ChromeDriverClass。所有 浏览器 Drivers 如 FirefoxDriver, 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, IEDriverServer、OperaDriver、SafariDriver各变体将仅符合 W3C 标准。
您可以在 what is the difference between ChromeDriver and WebDriver in selenium?
中找到相关讨论
我正在按以下方式使用 WebDriver 和 ChromeDriver 变量:
第 1 行:
WebDriver driver1 = new ChromeDriver();
第 2 行:
ChromeDriver driver2 = new ChromeDriver();
我的脚本仅限于 运行 测试用例,仅在 Chrome 驱动程序中,因此我绝不会使用任何其他浏览器进行测试。 因此,如果我在我的代码中选择 Line2 而不是 Line1,这会在任何功能或好处方面产生任何差异吗?(除了现有的 WebDriver 接口方法之外,寻找 ChromDriver Class 可以提供的任何附加功能) .
IWebDriver
是一个 Interface
,ChromeDriver
是一个 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接口类似于第三方的协议]浏览器供应商,例如 Mozilla、Chrome、Internet Explorer, Safari 等必须坚持并实施相同的。这将 in-turn 帮助 end-users 使用公开的 API 编写通用代码并在所有可用 Browsers
中实现功能,而无需任何更改。
为什么WebDriver driver = new ChromeDriver();
通过 WebDriver driver = new ChromeDriver();
我们正在创建 WebDriver 接口的实例,并将其 casting 到 ChromeDriverClass。所有 浏览器 Drivers 如 FirefoxDriver, 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, IEDriverServer、OperaDriver、SafariDriver各变体将仅符合 W3C 标准。
您可以在 what is the difference between ChromeDriver and WebDriver in selenium?
中找到相关讨论