Geckodriver のダウンロード: インストール方法 Firefox Selenium用ドライバー

Selenium の GeckoDriver とは何ですか?

Gecko という用語は、Mozilla に組み込まれている Web ブラウザ エンジンを表します。 Firefox browser。 Gecko ドライバーは、Web ドライバー対応クライアント間のプロキシとして機能します(Eclipse、Netbeans など)および Mozilla Firefox browser。つまり、Gecko ドライバーは、Selenium Web Driver テストと Mozilla の間のリンクとして機能します。 Firefox browser.

Selenium 3 より前、Mozilla Firefox browser Selenium のデフォルトのブラウザでした。 Selenium 3 以降、テスターは使用するスクリプトを初期化する必要があります。 Firefox GeckoDriver を明示的に使用します。 Selenium は、W3C Webdriver プロトコルを使用してリクエストを GeckoDriver に送信し、リクエストを Marionette という名前のプロトコルに変換します。 Firefox マリオネットプロトコルの形式で送信されたコマンドを理解して実行します。

Selenium の GeckoDriver

Selenium で GeckoDriver をダウンロードしてインストールする方法

Gecko ドライバーは、システムにダウンロードできる実行可能ファイルとして入手できます。 次のことwing Gecko ドライバーをダウンロードする手順のリストです。

ステップ1 ) 適切なバージョンを選択します。
このページで https://github.com/mozilla/geckodriver/releases ,オペレーティング システムに基づいて、GeckoDriver のダウンロードに適切なバージョンを選択します。

Selenium に GeckoDriver をダウンロードしてインストールします

ステップ2) ZIPファイルを解凍します。
ZIP ファイルのダウンロードが完了したら、ZIP ファイルの内容をファイル フォルダーに抽出します。

Selenium に GeckoDriver をダウンロードしてインストールします

ステップ3) 場所に注意してください。
ドライバーを抽出した場所をメモします。場所が使用されます later ドライバーをインスタンス化します。

Selenium に GeckoDriver をダウンロードしてインストールします

GeckoDriver を初期化する方法

GeckoDriver を初期化するには XNUMX つの異なる方法があります。

1. DesiredCapabilities の使用

まず、Gecko Driver のシステムプロパティを設定します。

構文:

System.setProperty("webdriver.gecko.driver","Path to geckdriver.exe file");

例:

System.setProperty("webdriver.gecko.driver","D:\\Downloads\\GeckoDriver.exe");

次に、必要な機能を設定します。

必要な機能は、Selenium がブラウザ名、バージョン、オペレーティング システムを理解して自動テストを実行するのに役立ちます。 以下は、DesiredCapabilities クラスを使用して Gecko ドライバーを設定するコードです。

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");

上記の方法を使用して gecko ドライバーが初期化された場合、必要な機能のコードは次のようになります。 必要。

3。 使用 Firefoxオプション

モジラ Firefox バージョン 47 以降には、レガシー システムとしてマリオネット ドライバーが含まれています。 これを利用して、マリオネットドライバーを次のように呼び出すことができます。 Firefox 以下のようなオプション

FirefoxOptions options = new FirefoxOptions();
options.setLegacy(true);

起動用のコード firefox Geckoドライバーを使用する

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 がマリオネット プロトコルを使用して Gecko ドライバーと通信するには、マリオネット プロパティを true に設定する必要があります。 最後に、 Firefox browser Desired Capabilities のオブジェクトを使用するインスタンス。

以下のステートメントは、上記のタスクを達成するのに役立ちます。

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 ドライバを作成し、インスタンス変数を使用します。

@Before
public void startBrowser() {
    driver = new FirefoxDriver();

}

Gecko に変換するには、コードを XNUMX 行追加するだけです。

    @Before
    public void startBrowser() {
        System.setProperty("webdriver.gecko.driver", "D:\\Downloads\\GeckoDriver.exe");
        driver = new FirefoxDriver();

    }

Gecko ドライバーの使用中に一般的な例外が発生しました

Following は、Gecko ドライバーの使用中に発生する一般的な例外と解決策のリストです。

この例外は、ユーザーがインスタンスを作成しようとしたときに発生します。 Firefox gecko ドライバーのシステム プロパティを設定せずにドライバーをインストールします。 これは通常、Selenium 3 から Selenium 以前のバージョンに加えられた変更点を知らない Selenium の初心者によって行われます。

上記の例外を解決するには、以下のように geckodriver.exe ファイルの場所を使用して gecko ドライバーのシステム プロパティを設定します。

System.setProperty("webdriver.gecko.driver", "D:\\Downloads\\geckodriver.exe");

Mozilla のインスタンスを作成する前に、gecko ドライバーのプロパティを設定する必要があることに注意してください。 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 ドライバーを最新バージョンに更新し、それを使用することです。

org.openqa.selenium.SessionNotCreatedException: Unable to create new remote session.

この例外は、Selenium と Gecko ドライバー間の互換性の問題が原因で発生します。 Gecko ドライバーが動作する Firefox バージョン 47 以降。 アップデートすれば解決できるかも Firefox バージョンを 47 以降にします。

WebDriver Exception: Connection Refused

この例外は、Web ドライバーが接続を確立できないときに生成されるメッセージです。 Firefox。 次のいずれかを使用して解決できますwing

  •   driver.quit() Web ドライバーの以前のインスタンスを破棄するメソッド
  • 自動テストを実行する前にブラウザのキャッシュを消去します
  • プロジェクトのワークスペースをクリーンアップします Eclipse IDE
  • 常に最新バージョンの Selenium gecko ドライバーと最新バージョンの Selenium gecko ドライバーを使用してください。 Firefox browser

Gecko ドライバーを使用する利点

Selenium Webdriver バージョン 2.53 は Mozilla と互換性がありません Firefox バージョン47.0以降。 の Firefox Mozilla の以前のバージョンで使用されていたドライバー Firefox は廃止され、GeckoDriver 実装のみが使用されます。 したがって、テスターが Mozilla で自動テストを実行したい場合は、GeckoDriver を使用する必要があります。 Firefox バージョン47.0以降。 しかし大きな疑問は、その利点は何でしょうか?

デフォルトと比較して GeckoDriver を使用する主な利点 Firefox 運転手は 互換性。 GeckoDriver が使用するもの W3C WebDriver プロトコル Seleniumと通信します。 W3C は、Web ドライバー用に広く定義された標準です。 これは、Selenium 開発者 (Selenium ベースをコーディングする人) がブラウザのバージョンごとに新しいバージョンの Web ドライバーを作成する必要がないことを意味します。 同じ Web ドライバーを複数のブラウザーのバージョンで使用できます。 したがって、GeckoDriver は、以前の実装と比較して優先されます。 Firefox ドライバ。