答案 0 :(得分:1)
它给出了错误,因为WebDriver是一个接口而不是一个类。所以创建webdriver的对象如下: -
WebDriver driver = new FirefoxDriver();
在上面的语句中,WebDriver是一个界面。接口包含已定义但未实现的空方法。只要不违反方法类型和签名,任何人都可以实现这些方法。因此,接口也称为契约,因为您可以根据需要使用接口,但不能更改它的定义方式。而且,由于它有空方法,你实际上不需要实例化它,因此你无法实例化它。
FirefoxDriver是专为Firefox浏览器编写的类。它具有已实现的方法,可以实例化。它可以在Web浏览器界面中定义的Firefox浏览器上执行所有功能(或方法)。
所以在上面的语句中,我们实际上告诉FirefoxDriver类“嘿,你可以在Firefox浏览器上自动化你想要的各种方法,但你需要坚持在WebDriver中定义的合同”。因此,我们声明一个WebDriver类型的引用变量,然后使用它来实例化FirefoxDriver,这意味着对象(驱动程序)的类型为WebDriver,但指向FirefoxDriver中所有数据和方法的内存分配(并且,如上所述, FirefoxDriver类已经在WebDriver中实现了方法的实现版本。所以一切都好:)
通过使用这种技术,我们使测试人员可以轻松使用他或她喜欢的任何浏览器。例如,要在IE驱动程序上自动化,就必须简单地编写一个类似
的语句WebDriver driver = new IEDriver();