无法实例化WebDriver类型

时间:2016-03-14 13:16:12

标签: java selenium installation webdriver

我刚刚开始使用Selenium并且已经遇到了问题。

很简单,但我完全错过了它,只是尝试创建一个WebDriver实例但是得到错误无法实例化...

enter image description here

我有所有jar文件,我哪里错了?

1 个答案:

答案 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();