如果我们创建:
ChromeDriver driver=new ChromeDriver();
将执行 chrome 驱动程序方法。
如果我们创建:
WebDriver driver=new ChromeDriver();
again ChromeDriver
方法被执行[按照方法重写]。
那为什么我们只在执行时才写后一个呢?
ChromeDriver 驱动程序 = new ChromeDriver();
如果你使用ChromeDriver driver = new ChromeDriver();
the Chrome驱动程序实例将通过它创建,我们将只能调用并执行由Chrome驱动程序并得到支持Chrome 浏览器仅有的。为了与其他浏览器一起操作,我们必须专门创建单独的对象,如下所示:
FirefoxDriver driver = new FirefoxDriver();
InternetExplorerDriver driver = new InternetExplorerDriver();
网络驱动程序接口
From Selenium的角度来看,网络驱动程序接口类似于第三方的协议浏览器供应商 like Mozilla, Chrome, IE浏览器, Safari等必须遵守并实施相同的规定。这反过来将帮助最终用户使用公开的 API 编写通用代码并在所有可用浏览器上实现功能,而无需进行任何更改。
WebDriver 驱动程序 = new ChromeDriver();
Through WebDriver driver = new ChromeDriver();
我们正在创建一个实例网络驱动程序接口和casting it to Chrome驱动程序班级。所有浏览器驱动程序都喜欢:
- Firefox驱动程序 https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/firefox/FirefoxDriver.html
- Chrome驱动程序 https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/chrome/ChromeDriver.html
- Internet Explorer驱动程序 https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/ie/InternetExplorerDriver.html
- PhantomJS驱动程序 http://phantomjs.org/
-
Safari驱动程序 https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/safari/SafariDriver.html etc
实施了网络驱动程序 https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/WebDriver.html界面(实际上是远程网络驱动程序 https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/remote/RemoteWebDriver.html类工具网络驱动程序接口和浏览器驱动程序延伸远程网络驱动程序)。所以如果我们使用WebDriver driver
,然后我们可以使用已经初始化的driver(作为通用对象变量)对于我们想要自动化的所有浏览器,例如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();
Trivia
根据当前场景,我们必须实例化以下实现网络驱动程序接口直接地。根据目前的做法,我们写我们的自动化测试脚本针对这个接口,以便将来我们可以swap in功能更齐全的Browser当有一个需求时。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)