WebDriver driver = new FirefoxDriver();
在上面的声明中,
WebDriver是一个接口。接口包含已定义但尚未实现的空方法。只要不违反方法类型和签名,任何人都可以实现这些方法。因此,接口也称为协定,因为您可以随意使用接口,但不能更改其定义方式。而且,由于它具有空方法,因此您实际上不需要实例化它,因此您无法实例化它。
FirefoxDriver是专门为Firefox浏览器编写的类。它具有已实现的方法,可以实例化。它可以按照界面中的定义在Firefox浏览器上执行所有功能(或方法)
WebDriver。
因此,在上面的声明中,我们实际上是在告诉
FirefoxDriver类:“嘿,您可以在Firefox浏览器上自动化所需的各种方法,但是您需要遵守
WebDriver”中定义的协定。因此,我们声明类型的引用变量,
WebDriver然后使用它实例化
FirefoxDriver,这意味着对象(驱动程序)是类型的,
WebDriver但指向其中的所有数据和方法的内存分配
FirefoxDriver(并且如上所述,
FirefoxDriver该类已经具有中的方法的已实现版本
WebDriver。所以一切都很好:)
通过使用这种技术,我们使测试人员可以轻松地使用自己喜欢的任何浏览器。例如,要在IE驱动程序上实现自动化,必须简单地编写如下语句
WebDriver driver = new IEDriver(); //where IEDriver is the class written for IE



