哪個版本的 Firefox 與 Selenium 相容
Firefox 與 Selenium 的相容性一直是一個難題。在 Selenium3 之前,Firefox 曾經是 Selenium 的預設瀏覽器。但在 Selenium3 之後,透過顯式使用 GeckoDriver,我們可以在 FireFox 中初始化指令碼。
FireFox 僅在之前的版本(即 v47 及更早版本)中得到完全支援。Selenium WebDriver 版本 2.53 與 Mozilla FireFox 版本 47.0+ 不相容。在 v47.0 之後,FireFox 提供了 GeckoDriver。GeckoDriver 是一個代理,用於使用與 W3C WebDriver 相容的客戶端與基於 gecko 的瀏覽器(即 Mozilla FireFox)進行互動。
GeckoDriver 充當 Selenium WebDriver 測試和 Mozilla FireFox 瀏覽器之間的橋樑。它是一個內置於 FireFox 瀏覽器的網頁瀏覽器引擎。
但問題來了,為什麼只使用 GeckoDriver 而不是 FireFox 的預設驅動程式?答案是 GeckoDriver 使用 W3C WebDriver 協議與 Selenium 通訊,這允許 Selenium 開發人員允許同一個 WebDriver 在多個瀏覽器版本中執行。
讓我們看看,對於 Selenium 2.53.1 及之前的版本,Selenium 如何與 FireFox 一起工作。
public class FirefoxTest {
@Test
public void startFfBrowser() {
WebDriver driver = new FirefoxDriver();
driver.get("https://tutorialspoint.tw");
}
}執行程式碼後,FireFox 會開啟 google.com。但現在如果我們在 Selenium3 及更高版本中執行相同的程式碼行,我們將得到一個執行時錯誤。
“java.lang.IllegalStateException: 驅動程式可執行檔案的路徑必須由 webdriver.gecko.driver 系統屬性設定;”
因此,要在 FireFox v47 及更高版本中執行指令碼,GeckoDriver 就派上用場了。
public class FirefoxTest {
@Test
public void startFfBrowser () {
System.setProperty("webdriver.gecko.driver",Path of your GeckoDriver.exe file);
FirefoxDriver driver = new FirefoxDriver();
driver.get("https://tutorialspoint.tw");
}
}我們可以透過直接在系統的環境變數中設定 geckodriver 路徑並使用傳統方式例項化 web 驅動程式來改進此程式碼。
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP