Geckodriverをダウンロード Firefox & Selenium

⚡ スマートサマリー

GeckoDriver Firefox and Selenium W3C WebDriverクライアントとMozilla間のプロキシとして機能します Firefoxコマンドを MariONETTEプロトコル。このガイドでは、インストール、初期化方法、サンプルコード、よくある例外、およびコア互換性の利点について説明します。

  • 🦊 ブリッジの役割: GeckoDriverが接続します Selenium WebDriverクライアント Firefox Mariオネットプロトコル。
  • (すなわち、 まずセットアップを行ってください。 お使いのオペレーティングシステムに対応するGeckoDriverの正しいビルドを、Mozillaの公式リポジトリからダウンロードしてください。
  • ⚙️ 3つの初期化パス: マリオネットシステムプロパティである DesiredCapabilities を介してドライバーを初期化するか、 Firefoxオプション。
  • 🧪 サンプルワークフロー:   JUnit ブラウザのライフサイクルを適切に管理するために、@Before、@Test、@After などのアノテーションを使用します。
  • 🛠️ よくあるエラーを修正する: SessionNotCreated および接続拒否の問題を解決するには、 Firefox, Selenium、およびドライバーのバージョン。
  • 🌐 W3Cの利点: W3C WebDriver標準はバージョン間の互換性を提供し、自動化スイートのメンテナンスを軽減します。

GeckoDriver で Selenium

GeckoDriver とは何ですか Selenium?

Geckoという用語は、Mozillaに組み込まれているウェブブラウザエンジンを指します。 Firefox ブラウザ。GeckoDriver は WebDriver 対応クライアント間のプロキシとして機能します (Eclipse, NetBeans, IntelliJ IDEAなど)とMozilla Firefox ブラウザ。つまり、GeckoDriverはブラウザとブラウザ間のリンクとして機能します。 Selenium WebDriverテストとMozilla Firefox.

作業前 Selenium 3、Mozilla Firefox ブラウザは、 Selenium。 後の Selenium 3. テスターは使用するスクリプトを初期化する必要があります Firefox GeckoDriverを介して明示的に。 Selenium W3C WebDriver プロトコルを使用して GeckoDriver にリクエストを送信し、GeckoDriver はそれをプロトコルに変換します。 Mariオネット。 Firefox そしてコマンドを理解する transmitテッドの Marionetteプロトコルフォーマットを適用し、それを実行します。

GeckoDriverを使用する利点

Selenium WebDriver バージョン 2.53 は Mozilla と互換性がありません Firefox バージョン47.0以降。レガシー Firefox 以前のMozillaで使用されていたドライバー Firefox ビルドは廃止され、現在使用できるのは GeckoDriver の実装のみです。したがって、テスターは Mozilla 上で自動テストを実行するために GeckoDriver を使用する必要があります。 Firefox バージョン 47.0 以上。

従来のドライバーと比較してGeckoDriverを使用する主な利点 Firefox 運転手は 互換性GeckoDriverは W3C WebDriver プロトコル と通信する SeleniumW3CはWebDriverの普遍的に定義された標準です。これはつまり Selenium 開発者は、ブラウザのリリースごとに新しいドライババージョンを作成する必要はありません。同じ WebDriver 実装を複数のブラウザバージョンで使用できるため、GeckoDriver は従来の WebDriver よりも推奨されています。 Firefox ドライバ。

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

GeckoDriverは実行ファイルとして配布されており、システムに直接ダウンロードできます。以下の手順に従ってGeckoDriverをダウンロードしてインストールしてください。 Selenium オートメーション。

ステップ1) 適切なバージョンを選択します。
公式リリースページにて https://github.com/mozilla/geckodriver/releasesご使用のオペレーティングシステムとアーキテクチャに合った適切なGeckoDriverビルドを選択してください。

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

ステップ2) ExtracZIPファイルをダウンロードしてください。
ZIPファイルのダウンロードが完了したら、tracその内容をあなたのコンピューター上のフォルダーに保存してください。

ExtracGeckoDriver ZIPファイル

ステップ3) 運転手の位置をメモしておいてください。
フォルダーパスを記録してくださいtracドライバーをtedします。この場所は、後でテストスクリプトからドライバーをインスタンス化するために使用されます。

GeckoDriverの場所をメモしてください

GeckoDriverを初期化する方法

GeckoDriverを初期化するには3つの異なる方法があります Selenium テストスクリプト。テストフレームワークに最適なものを選び、 Selenium バージョン。

1. DesiredCapabilities の使用

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

構文:

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

例:

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

次に、希望する機能を設定します。希望する機能は、 Selenium 自動テストを実行するために必要なブラウザ名、バージョン、およびオペレーティングシステムを把握します。以下は、DesiredCapabilitiesクラスを使用してGeckoDriverを設定するコードです。

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. 使用方法 Mariオネットプロパティ

GeckoDriverは、以下に示すように、marionetteプロパティを使用して初期化することもできます。

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

上記の方法で GeckoDriver を初期化すると、Desired Capabilities コードは 必要。

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

モジラ Firefox バージョン47以降では Mariレガシーシステムとしての onette ドライバー。これを利用して、 Marionetteドライバは以下のように呼び出すことができます Firefox 選択肢は以下のとおりです。

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

Code 打ち上げ用 Firefox GeckoDriverを使用する

以下 JUnit-ベースの例では、完全な実行可能な Selenium 起動するテスト Firefox GeckoDriver を介してデモに移動します URL.

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("https://demo.guru99.com/selenium/guru99home/");
    }

    @After
    public void endTest() {
        driver.quit();
    }

}

Code 説明

@Beforeメソッド

最初に、GeckoDriver のシステム プロパティを geckodriver.exe のダウンロード場所に設定しました。また、marionette プロパティを true に設定しました。 Selenium 使用 MariGeckoDriverと通信するためのonetteプロトコル。最後に、 Firefox Desired Capabilitiesオブジェクトを使用するブラウザインスタンス。

以下の記述によって、この設定が実現されます。

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

@試験方法

ユーザー指定の場所へ移動します URL ビルトインを使用して get によって提供される方法 Selenium 以下に示すWebDriver。

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

@Afterメソッド

最後に、ブラウザインスタンスを閉じます。 quit 方法。

driver.quit();

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

以前使用されたGeckoDriver以外のスクリプト Selenium 3つは簡単でした。 Firefox ドライバーを使用し、インスタンス変数を使用しました。

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

GeckoDriver用のスクリプトに変換するには、geckodriver.exeの場所を指定するコードを1行追加するだけで済みます。

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

GeckoDriverの使用中に発生した一般的な例外

以下は、GeckoDriverの使用中に発生する一般的な例外とその解決策の一覧です。

この例外は、ユーザーがインスタンス化しようとしたときに発生します。 Firefox GeckoDriver のシステムプロパティを設定せずにドライバーを駆動します。これはよく見られるケースです。 Selenium 導入された変更を知らない初心者 Selenium 以前のバージョンと比較して3。

解決策は、以下に示すように、geckodriver.exe ファイルの場所を指定して、GeckoDriver のシステムプロパティを設定することです。

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

Mozillaのインスタンスを作成する前に、GeckoDriverのプロパティを設定する必要があることに注意してください。 Firefox ドライバ。

org.openqa.selenium.firefox.NotConnectedException: Unable to connect to host 127.0.0.1 on port 7055 after 45000 ms.

この例外は通常、 Firefox バージョンが最新リリースにアップグレードされました。解決策は、 Selenium JARファイルとGeckoDriverを最新の互換性のあるバージョンに更新してから、スクリプトを再度実行してください。

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

この例外は、次の間の互換性の問題により発生します。 Selenium そしてGeckoDriver。GeckoDriverは Firefox バージョン47以降。この問題は、 Firefox バージョン47以上。

WebDriver Exception: Connection Refused

この例外は、WebDriver が接続を確立できない場合に発生します。 Firefox以下のいずれかの方法で解決できます。

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

よくあるご質問

いいえ。GeckoDriverは、W3C WebDriver標準を実装するプロキシ実行ファイルです。 Marionetteは、自動化プロトコルとして組み込まれています。 FirefoxGeckoDriverはWebDriverコマンドを Mariオネットのメッセージ Firefox 実行できます。

最新のGeckoDriverビルドは正式にターゲットとしています Firefox 91 ESR以降。最小および最大要件を確認するには、必ずMozillaのGitHubページにあるGeckoDriverのリリースノートを確認してください。 Firefox ダウンロードしたビルドでサポートされているバージョン。

GeckoDriver をシステム PATH に追加するのは任意ですが便利です。PATH に追加されている場合は、System.setProperty の呼び出しを省略できます。そうでない場合は、ドライバのパスを明示的に指定する必要があります。 Selenium テストスクリプト。

はい。AI支援テストツールは生成できます Selenium WebDriverコードは、ロケーターを提案し、不安定なスクリプトを自動修復します。これらはルーチン作業を高速化しますが、信頼性を確保するには、ドライバーのバージョン、待機時間、アサーションの人間によるレビューが依然として必要です。 Firefox オートメーション。

いいえ。AIエージェントは現在、WebDriverプロトコルを置き換えるのではなく、その上に構築されています。GeckoDriverは、 Firefox一方、AIレイヤーは、既存の標準規格に加えて、より高度なロケーター、自己修復機能、自然言語によるテスト作成機能などを追加する。