<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # Gecko(Marionette)驅動程序 Selenium:下載,安裝,與 Firefox 一起使用 > 原文: [https://www.guru99.com/gecko-marionette-driver-selenium.html](https://www.guru99.com/gecko-marionette-driver-selenium.html) ## 什么是壁虎驅動程序? 術語 Gecko 代表 Mozilla Firefox 瀏覽器中內置的 Web 瀏覽器引擎。 Gecko 驅動程序充當啟用 Web 驅動程序的客戶端(Eclipse,Netbeans 等)和 Mozilla Firefox 瀏覽器之間的代理。 簡而言之,Gecko 驅動程序充當 Selenium Web 驅動程序測試與 Mozilla Firefox 瀏覽器之間的鏈接。 在 Selenium 3 之前,Mozilla Firefox 瀏覽器是 Selenium 的默認瀏覽器。 在 Selenium 3 之后,測試人員需要使用 GeckoDriver 顯式初始化腳本以使用 Firefox。 Selenium 使用 W3C Webdriver 協議將請求發送到 GeckoDriver,后者將其轉換為名為 Marionette 的協議。 Firefox 將了解以木偶協議形式傳輸的命令并執行它們。 ![](https://img.kancloud.cn/7a/2c/7a2cc9a53c472e999e1745e9bd5859ba_704x83.png) ## 使用 Gecko 驅動程序的優勢 Selenium Webdriver 版本 2.53 與 Mozilla Firefox 版本 47.0+不兼容。 Mozilla Firefox 早期版本中使用的 Firefox 驅動程序將停止使用,僅使用 GeckoDriver 實現。 因此,如果測試人員想要在 Mozilla Firefox 47.0+版本上運行自動化測試,則不得不使用 GeckoDriver。 但是最大的問題-優勢是什么? 與默認的 Firefox 驅動程序相比,使用 GeckoDriver 的主要優點是**兼容性**。 GeckoDriver 使用 **W3C WebDriver 協議**與 Selenium 通信。 W3C 是 Web 驅動程序的通用定義標準。 這意味著 Selenium 開發人員(編碼 Selenium 基礎的人們)無需為每個瀏覽器版本創建 Web 驅動程序的新版本。 相同的 Web 驅動程序可用于多個瀏覽器版本。 因此,與早期版本的 Firefox 驅動程序相比,首選 GeckoDriver。 ## 下載并安裝 Gecko 驅動程序: Gecko 驅動程序作為可執行文件提供,可以在系統上下載。 以下是下載 gecko 驅動程序的步驟列表。 **步驟 1)**在此頁面 [https://github.com/mozilla/geckodriver/releases](https://github.com/mozilla/geckodriver/releases) ,根據您的操作系統選擇適合 GeckoDriver 下載的版本 ![](https://img.kancloud.cn/d9/71/d971aaf846f9b13e67893faa45570854_828x470.png) **步驟 2)** ZIP 文件下載完成后,將 ZIP 文件的內容提取到文件夾中 ![](https://img.kancloud.cn/ab/99/ab99d29ad500d3c55c929f28bce01654_314x62.png) **步驟 3)**注意您提取驅動程序的位置。 稍后將使用 location 實例化驅動程序。 [![](https://img.kancloud.cn/b3/a0/b3a0039cb6da65780b91c3c0e9d5add7_396x164.png) ](/images/1/030118_0746_GeckoMarion3.png) ## 初始化 GeckoDriver 的方法: 有三種不同的初始化 GeckoDriver 的方法。 **1.使用 DesiredCapabilities:** 首先,設置 Gecko 驅動程序的系統屬性。 句法: ``` System.setProperty("webdriver.gecko.driver","Path to geckdriver.exe file"); ``` 例: ``` System.setProperty("webdriver.gecko.driver","D:\\Downloads\\GeckoDriver.exe"); ``` 接下來,設置所需功能。 所需功能可幫助 Selenium 了解瀏覽器名稱,版本和操作系統以執行自動化測試。 下面是使用 DesiredCapabilities 類設置壁虎驅動程序的代碼。 ``` DesiredCapabilities capabilities = DesiredCapabilities.firefox(); capabilities.setCapability("marionette",true); ``` 這是完整的代碼 ``` System.setProperty("webdriver.gecko.driver", driverPath); DesiredCapabilities capabilities = DesiredCapabilities.firefox(); capabilities.setCapability("marionette",true); driver= new FirefoxDriver(capabilities); ``` **2.使用木偶屬性:** Gecko 驅動程序也可以使用 marionette 屬性進行初始化,如下所示 ``` System.setProperty("webdriver.gecko.driver","D:\\Downloads\\GeckoDriver.exe"); ``` 如果使用上述方法初始化了壁虎驅動程序,則不需要**即可獲得所需功能的代碼。** **3.使用 FirefoxOptions:** Mozilla Firefox 47+版本具有木偶驅動程序作為舊版系統。 利用這一點,可以使用 Firefox Options 如下調用 marionette 驅動程序 ``` FirefoxOptions options = new FirefoxOptions(); options.setLegacy(true); ``` ## 使用 Gecko 驅動程序啟動 firefox 的代碼: ``` package com.guru99.demo; import org.junit.After; import org.junit.Before; import org.junit.Test; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.remote.DesiredCapabilities; public class GeckoDriverDemo { String driverPath = "D:\\Guru99Demo\\GeckoDriver.exe"; public WebDriver driver; @Before public void startBrowser() { System.setProperty("webdriver.gecko.driver", driverPath); DesiredCapabilities capabilities = DesiredCapabilities.firefox(); capabilities.setCapability("marionette", true); driver = new FirefoxDriver(capabilities); } @Test public void navigateToUrl() { driver.get("http://demo.guru99.com/selenium/guru99home/"); } @After public void endTest() { driver.quit(); } } ``` 代碼說明: **@Before 方法:** 最初,我們需要將 gecko 驅動程序的系統屬性設置為 geckdriver.exe 文件下載位置。 我們需要將 Selenium 的 marionette 屬性設置為 true 才能使用 Marionette 協議與 Gecko Driver 進行通信。 最后,我們需要使用“所需功能”對象啟動 Firefox 瀏覽器實例。 以下語句有助于完成上述任務。 ``` System.setProperty("webdriver.gecko.driver", driverPath); DesiredCapabilities capabilities = DesiredCapabilities.firefox(); capabilities.setCapability("marionette",true); driver= new FirefoxDriver(capabilities); ``` **@測試方法:** 我們正在使用 Selenium Web 驅動程序提供的內置“ get”方法導航到用戶指定的 URL。 以下語句有助于實現相同目的。 ``` driver.get("http://demo.guru99.com/selenium/guru99home/"); ``` **@After 方法:** 最后,我們使用 quit 方法關閉瀏覽器實例。 ``` driver.quit(); ``` ## 將非 Gecko 的腳本修改為 Gecko: Selenium 3 之前使用的非 gecko 驅動程序腳本非常簡單。 我們需要創建 Firefox 驅動程序的實例并使用 instance 變量。 ``` @Before public void startBrowser() { driver = new FirefoxDriver(); } ``` 要轉換為壁虎,您只需添加一行代碼 ``` @Before public void startBrowser() { System.setProperty("webdriver.gecko.driver", "D:\\Downloads\\GeckoDriver.exe"); driver = new FirefoxDriver(); } ``` ## 使用 Gecko 驅動程序時發生常見異常: 以下列出了在使用 Gecko Driver 并具有解決方案時發生的常見異常。 **1.驅動程序可執行文件的路徑必須由 webdriver.gecko.driver 系統屬性設置:** 當用戶嘗試實例化 Firefox 驅動程序而不設置 gecko 驅動程序的系統屬性時,將發生此異常。 這通常由 Selenium 的初學者完成,他們不知道從 Selenium 3 到 Selenium 先前版本所做的更改。 解決上述異常的方法是使用下面的 geckodriver.exe 文件位置設置 gecko 驅動程序的系統屬性 ``` System.setProperty("webdriver.gecko.driver", "D:\\Downloads\\geckodriver.exe"); ``` 請注意,在創建 Mozilla Firefox 驅動程序實例之前,需要設置 gecko 驅動程序的屬性。 **2\. Firefox 未連接異常:** ``` org.openqa.selenium.firefox.NotConnectedException: Unable to connect to host 127.0.0.1 on port 7055 after 45000 ms. ``` 當 Firefox 版本已升級到最新版本時,通常會發生此異常。 解決此異常的方法是將 Selenium jar 文件和 gecko 驅動程序更新為最新版本并使用它們。 **3.會話未創建異常:** ``` org.openqa.selenium.SessionNotCreatedException: Unable to create new remote session. ``` 由于 Selenium 和 Gecko 驅動程序之間的兼容性問題,發生此異常。 Gecko 驅動程序可用于 Firefox 47 或更高版本。 可以通過將 Firefox 版本更新到 47 或更高版本來解決。 **4.連接被拒絕異常:** ``` WebDriver Exception: Connection Refused ``` 當 Web 驅動程序無法與 Firefox 建立連接時,會生成此消息。 可以使用以下任何一種技術來解決。 * 使用 driver.quit()方法銷毀 Web 驅動程序的早期實例 * 在執行自動化測試之前,請清理瀏覽器緩存 * 在 Eclipse IDE 中清理項目工作區 * 始終使用最新版本的 selenium gecko 驅動程序和最新版本的 Firefox 瀏覽器
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看