簡體   English   中英

無法實例化類型 WebDriver

[英]Cannot instantiate the type WebDriver

我剛剛開始使用 Selenium 並且已經遇到了問題。

很簡單,但我完全錯過了它,只是嘗試創建 WebDriver 的實例但無法實例化錯誤...

在此處輸入圖片說明

我有所有的 jar 文件,我哪里出錯了?

它給出了錯誤,因為 WebDriver 是一個接口而不是一個類。 所以創建 webdriver 的對象如下:-

WebDriver driver = new FirefoxDriver();

在上面的語句中,WebDriver 是一個接口。 接口包含已定義但未實現的空方法。 只要不違反方法類型和簽名,任何人都可以實現這些方法。 因此,接口也稱為契約,因為您可以隨意使用接口,但不能更改它的定義方式。 而且,由於它有空方法,您實際上不需要實例化它,因此您無法實例化它。

FirefoxDriver 是專門為 Firefox 瀏覽器編寫的類。 它具有已實現的方法並且可以實例化。 它可以在 Firefox 瀏覽器上執行接口 WebDriver 中定義的所有功能(或方法)。

所以在上面的聲明中,我們實際上是在告訴 FirefoxDriver 類“嘿,你可以在 Firefox 瀏覽器上自動化你想要的各種方法,但你需要堅持 WebDriver 中定義的契約”。 所以我們聲明了一個 WebDriver 類型的引用變量,然后用它來實例化 FirefoxDriver,這意味着對象(驅動程序)是 WebDriver 類型但指向 FirefoxDriver 中所有數據和方法的內存分配(以及,如上所述, FirefoxDriver 類已經具有 WebDriver 中方法的實現版本)。 所以一切都很好:)

通過使用這種技術,我們使測試人員可以輕松使用他或她喜歡的任何瀏覽器。 例如,要自動化 IE 驅動程序,您必須簡單地編寫如下語句

WebDriver driver = new IEDriver();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM