java为什么我需要使用WebDriver而不是ChromeDriver
我正在那里做一个项目,我们只需要在chrome浏览器上运行测试。我们不需要任何其他浏览器
而不是
WebDriver driver = new ChromeDriver();
我能用吗
ChromeDriver driver = new ChromeDriver();
使用ChromeDriver而不是WebDriver的缺点是什么
你可以在下面搜索框中键入要查询的问题!
我正在那里做一个项目,我们只需要在chrome浏览器上运行测试。我们不需要任何其他浏览器
而不是
WebDriver driver = new ChromeDriver();
我能用吗
ChromeDriver driver = new ChromeDriver();
使用ChromeDriver而不是WebDriver的缺点是什么
# 1 楼答案
https://www.geeksforgeeks.org/upcasting-vs-downcasting-in-java/
这叫做向上投射
正如在另一个答案中提到的
因此,如果您将标识符声明为Chromedriver类型:
然后,将只公开ChromeDriver类中定义的方法。因此,我们将其升级到最高级别,即WebDriver接口,以便WebDriver接口中的所有方法,以及RemoteWebDriver中重写的所有方法,以及ChromeDriver类在对象实例中可用
这有助于我们使用相同的变量初始化不同类型的驱动程序,因为只使用由web驱动程序类实现/定义的方法
等等
更多信息请访问:http://makeseleniumeasy.com/2018/02/08/why-do-we-up-cast-browser-driver-class-object-to-webdriver/
# 2 楼答案
使用
ChromeDriver driver = new ChromeDriver();
的唯一缺点是,将来您将无法在任何其他浏览器上使用代码所以,虽然目前你只使用Chrome浏览器,但这并没有什么区别,但对于将来的使用来说,这是不必要的限制,因为使用
ChromeDriver driver = new ChromeDriver();
而不是WebDriver driver = new ChromeDriver();
也不会给你带来任何好处# 3 楼答案
是的,你可以用
ChromeDriver
类扩展了RemoteWebDriver
类RemoteWebDriver class implements WebDriver interface
看看chromedriver的官方信息
有7个以上的类从
RemoteWebDriver
扩展而来,所以如果您这样声明驱动程序:这意味着驱动程序的类型是WebDriver类型,它不是特定的,所以您可以更改浏览器或实现
cross browser automation testing
但如果你这么做了
您无法实现跨浏览器测试