在硒中ChromeDriver和WebDriver有什么区别? [英] what is the difference between ChromeDriver and WebDriver in selenium?
问题描述
如果我们创建:
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屋!