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

GeckoDriver とは何ですか Selenium?

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

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

GeckoDriver で Selenium

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

Gecko ドライバーは、システムにダウンロードできる実行可能ファイルとして利用できます。以下は、Gecko ドライバーをダウンロードする手順の一覧です。

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

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

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

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

ステップ3) 場所に注意してください。
ドライバーを抽出した場所をメモします。この場所は、後でドライバーをインスタンス化するときに使用されます。

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

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ドライバは以下のようにマリオネットプロパティを使って初期化することもできます。

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

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

3. 使用方法 Firefoxオプション

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

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 使用する MariGecko ドライバーと通信するための onette プロトコル。最後に、 Firefox 必要な機能のオブジェクトを使用するブラウザ インスタンス。

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

System.setProperty("webdriver.gecko.driver", driverPath);
DesiredCapabilities capabilities = DesiredCapabilities.firefox();
capabilities.setCapability("marionette",true);
driver= new FirefoxDriver(capabilities);

@試験方法

によって提供される組み込みの「get」メソッドを使用して、ユーザー指定の URL に移動します。 Selenium ウェブドライバー。以下のステートメントは、同じことを達成するのに役立ちます。

driver.get("http://demo.guru99.com/selenium/guru99home/");

@Afterメソッド

最後に、quit メソッドを使用してブラウザ インスタンスを閉じます。

driver.quit();

非 Gecko 用のスクリプトを Gecko に変更する

以前に使用された非 Gecko ドライバー スクリプト Selenium 3は簡単でした。のインスタンスを作成する必要があります 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 ドライバーの使用中に一般的な例外が発生しました

以下は、Gecko ドライバーの使用中に発生する一般的な例外とその解決策の一覧です。

この例外は、ユーザーがインスタンスを作成しようとしたときに発生します。 Firefox gecko ドライバーのシステム プロパティを設定せずにドライバーをインストールします。これは通常、初心者が行うことですが、 Selenium からの変化に気づいていない人 Selenium 3へ 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次のいずれかの手法を使用して解決できます。

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

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 Base) では、ブラウザのバージョンごとに新しいバージョンの Web ドライバーを作成する必要はありません。同じ Web ドライバーを複数のブラウザーのバージョンで使用できます。したがって、GeckoDriver は、以前の実装と比較して優先されます。 Firefox ドライバ。