gpt4 book ai didi

java - 为什么我们将 firefoxdriver 实例分配给 webdriver

转载 作者:搜寻专家 更新时间:2023-11-01 03:59:51 25 4
gpt4 key购买 nike

我是 Java 或 Selenium 的新手。

我只需要帮助来理解一个基本问题。

为什么我们将 firefoxdriver 实例分配给 WebDriver?WebDriver driver=new FirefoxDriver()

我知道这是 Java 中的一种后期绑定(bind),因为我们可以在稍后的时间点将 IEDriver 或其他一些实例分配给 WebDriver。

问题 1:但这适用于类,对吧?

问题2:WebDriver是一个接口(interface),那我们可以创建一个接口(interface)的对象实例吗?

最佳答案

WebDriver driver = new FirefoxDriver();

在上面的语句中,WebDriver是一个接口(interface)。接口(interface)包含已定义但未实现的空方法。只要不违反方法类型和签名,任何人都可以实现这些方法。因此,接口(interface)也被称为契约,因为你可以随心所欲地使用一个接口(interface),但你不能改变它已经被定义的方式。而且,由于它有空方法,您实际上不需要实例化它,因此您无法实例化它。

FirefoxDriver 是专门为 Firefox 浏览器编写的类。它具有已实现的方法,并且可以实例化。它可以在 Firefox 浏览器上执行接口(interface) WebDriver 中定义的所有功能(或方法)。

所以在上面的语句中,我们实际上是在告诉 FirefoxDriver 类“嘿,你可以在 Firefox 浏览器上自动执行你想要的各种方法,但你需要遵守 中定义的约定>WebDriver”。所以我们声明一个WebDriver类型的引用变量,然后用它来实例化FirefoxDriver,也就是说对象(driver)是WebDriver类型的但指向 FirefoxDriver 中所有数据和方法的内存分配(并且,如上所述,FirefoxDriver 类已经具有 WebDriver< 中方法的实现版本)。所以一切都很好:)

通过使用这种技术,我们使测试人员可以轻松地使用他或她喜欢的任何浏览器。例如,要在 IE 驱动程序上实现自动化,只需简单地编写一条语句,如

WebDriver driver = new IEDriver(); //where IEDriver is the class written for IE

关于java - 为什么我们将 firefoxdriver 实例分配给 webdriver,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25757034/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com