WebDriver を使用してデータのMicrosoft Edge

WebDriver を使用すると、開発者はユーザー Microsoft Edge操作をシミュレートすることで、ユーザーの操作を自動化できます。 WebDriver のテストとシミュレーションは、JavaScript の単体テストと次の点で異なります。

  • ブラウザーで実行されている JavaScript では利用できない機能と情報にアクセスします。
  • ユーザー イベントや OS レベルのイベントをより正確にシミュレートします。
  • 1 回のテスト セッションで、複数のウィンドウ、タブ、Web ページを管理します。
  • 特定のコンピューターで Microsoft Edge の複数のセッションを実行します。

WebDriver と他のソフトウェアの関係

WebDriver を使用して Microsoft Edge を自動化し、ユーザーの操作をシミュレートするには、次の 3 つのコンポーネントが必要です。

  • Microsoft Edge
  • Microsoft Edge ドライバー
  • WebDriver テスト フレームワーク

これらのコンポーネント間の機能的な関係は次のとおりです。

テクノロジ ロール
WebDriver プラットフォームおよび言語に依存しないワイヤー プロトコルの W3C 標準。 このプロトコルにより、アウトプロセス プログラムは Web ブラウザーの動作をリモートで指示できます。
Microsoft Edge ドライバー Microsoft Edge 専用の WebDriver プロトコルの Microsoft による実装。 テストの作成者は、Microsoft Edge ドライバーが受け取る WebDriver コマンドを使用するテストを書き込みます。 Microsoft Edge ドライバーは、そのコマンドをブラウザーに伝達する責任があります。
WebDriver テスト フレームワーク テストの作成者は、テスト フレームワークを使用して、エンドツーエンドのテストを書き込み、ブラウザーを自動化します。 コードを Microsoft Edge ドライバーが Microsoft Edge (Chromium) で実行するコマンドに変換する言語固有のインターフェイスを提供します。 WebDriver テスト フレームワークは、すべての主要なプラットフォームと言語に対応しています。 そのようなフレームワークの 1 つが Selenium です。
Internet Explorer ドライバー Internet Explorer 専用の WebDriver プロトコルの実装。 Internet Explorer のレガシ エンドツーエンド テストを実行するには、Internet Explorer ドライバーを使用することをお勧めします。

次のセクションでは、Microsoft Edge (Chromium) の WebDriver の使用を開始する方法について説明します。

Microsoft Edge ドライバーをダウンロードする

テストの自動化を開始するには、次の手順を使用して、インストールする WebDriver のバージョンがお使いのブラウザーのバージョンと一致していることを確認します。

  1. Microsoft Edge のバージョンを検索します。

    1. edge://settings/help に移動します。

      2021 年 4 月 15 日の Microsoft Edge のビルド番号

  2. [Microsoft Edge ドライバー] に移動します。

  3. [最新バージョンを取得する] に移動します。

  4. Microsoft Edge のバージョン番号に一致するチャネルのビルドを選択します。

    Microsoft Edge ドライバー Web ページの「最新バージョンの入手」セクション

    Microsoft Edge ドライバー Web ページの「最新バージョンの入手」セクション

WebDriver テスト フレームワークを選択する

Microsoft Edge ドライバーをダウンロードした後、ダウンロードする必要がある最後のコンポーネントは WebDriver テスト フレームワークです。 テストの作成者は、WebDriver テスト フレームワークを使用して、エンドツーエンドのテストを書き込み、ブラウザーを自動化します。 フレームワークは、コード (Python、Java、C#、Ruby、JavaScriptなど) を Microsoft Edge ドライバーが Microsoft Edge (Chromium) で実行するコマンドに変換する言語固有のインターフェイスを提供します。 WebDriver テスト フレームワークは、すべての主要なプラットフォームと言語に対応しています。

この記事では、Selenium フレームワークの使用方法について説明しますが、WebDriver をサポートする任意のライブラリ、フレームワーク、およびプログラミング言語を使用できます。 Selenium 以外の WebDriver テスト フレームワークを使用して同じタスクを実行するには、選択したフレームワークの公式ドキュメントを参照してください。

Selenium を使用している場合、Microsoft Edge チームは Selenium 4.0.0-beta2 以降を推奨します。これは、そのバージョンの Selenium が Microsoft Edge (Chromium) をサポートしているためです。 ただし、現在の安定した Selenium 3 リリースを含む、Selenium のすべての旧バージョンで Microsoft Edge (Chromium) を制御することができます。

Selenium 4 の使用

Selenium WebDriver テスト フレームワークは、任意のプラットフォームで使用でき、Java、Python、C#、Ruby、および JavaScript で使用できます。

Selenium 4 には、Microsoft Edge (Chromium) のサポートが組み込まれています。 Selenium 4 をインストールするには、[Selenium ライブラリのインストール] に移動します。

Selenium 4 を使用する場合は、Microsoft Edge 用の Selenium ツールを使用する必要はありません。 Microsoft Edge 用の Selenium ツールは Selenium 3 専用です。 Microsoft Edge 用の Selenium ツールで Selenium 4 を使用して新しい EdgeDriver インスタンスを作成しようとすると、次のエラーが発生します: System.MissingMethodException: 'Method not found: 'OpenQA.Selenium.Remote.DesiredCapabilities OpenQA.Selenium.DriverOptions.GenerateDesiredCapabilities(Boolean)'

Selenium 4 を使用していてこのエラーが発生した場合は、プロジェクトから Microsoft.Edge.SeleniumTools を削除し、OpenQA.Selenium.Edge 名前空間の公式の EdgeOptions クラスと EdgeDriver クラスを使用していることを確認します。

Selenium 3 の使用

既に [Selenium 3][|::ref1::|] を使用している場合は、既存のブラウザーのテストがあり、Selenium のバージョンを変更せずに Microsoft Edge \ (Chromium ) のカバレッジを追加することを希望するかもしれません。 [Selenium 3][|::ref2::|] を使用して Microsoft Edge \ (EdgeHTML ) と Microsoft Edge \ (Chromium ) の自動テストを作成するには更新されたドライバーを使用するために、Microsoft Edge 用 Selenium ツール のパッケージをインストールします。 ツールに含まれている EdgeDriver クラスと EdgeDriverService クラスは、Selenium 4 に組み込まれている同等のクラスと完全に互換性があります。

Selenium 3 を使用している場合は、次の手順を使用して、Microsoft Edge 用の Selenium ツールと [Selenium 3][|::ref3::|] をプロジェクトに追加します。

  • C#
  • Python
  • Java
  • JavaScript

NUGET CLI または Visual Studio を使用して、 Microsoft.Edge.SeleniumToolsSelenium.WebDriver の各パッケージを .NET projectに追加します。

WebDriver を使用して Microsoft Edge (Chromium) を自動化する

WebDriver を使用してブラウザーを自動化するには、まず優先 WebDriver テスト フレームワークを使用して WebDriver セッションを開始する必要があります。 セッションは、WebDriver コマンドを使用して制御されるブラウザーの 1 つの実行中のインスタンスです。 WebDriver セッションを開始して、新しいブラウザー インスタンスを起動します。 WebDriver セッションを閉じるまで、起動されたブラウザー インスタンスは開いたままです。

次のコンテンツでは、Selenium を使用して Microsoft Edge (Chromium) で WebDriver セッションを開始する方法について説明します。 これらの例は、Selenium 3 または 4 のいずれかを使用して実行できます。 Selenium 3 で WebDriver を使用するには、Microsoft Edge 用の Selenium ツール パッケージをインストールする必要があります。

注意

この記事では、Selenium フレームワークの使用方法について説明しますが、WebDriver をサポートする任意のライブラリ、フレームワーク、およびプログラミング言語を使用できます。 別のフレームワークを使用して同じタスクを実行するには、選択したフレームワークの公式ドキュメントを参照してください。

Microsoft Edge (Chromium) を自動化する

Selenium は、EdgeDriver クラスを使用して Microsoft Edge (Chromium) セッションを管理します。 セッションを開始して Microsoft Edge (Chromium) を自動化するには、新しい EdgeDriver オブジェクトを作成し、UseChromium プロパティが true に設定された EdgeOptions オブジェクトを渡します。

  • C#
  • Python
  • Java
  • JavaScript

var options = new EdgeOptions();
options.UseChromium = true;

var driver = new EdgeDriver(options);

注意

IT管理者が DeveloperToolsAvailability ポリシーを 2 に設定している場合、Microsoft Edge ドライバーは Microsoft Edge (Chromium) の駆動をブロックされます。ドライバーは Microsoft Edge DevTools を使用するためです。 Microsoft Edge (Chromium) を自動化するために、DeveloperToolsAvailability ポリシーが 0 または 1 に設定されていることを確認します。

特定のブラウザー バイナリを選択する (Chromiumのみ)

特定の Microsoft Edge (Chromium) バイナリを使用して WebDriver セッションを開始できます。 たとえば、Microsoft Edge ベータ版などの Microsoft Edge プレビュー チャネルを使用してテストを実行できます。

  • C#
  • Python
  • Java
  • JavaScript

var options = new EdgeOptions();
options.UseChromium = true;
options.BinaryLocation = @"C:\Program Files (x86)\Microsoft\Edge Beta\Application\msedge.exe";

var driver = new EdgeDriver(options);

Microsoft Edge ドライバー サービスをカスタマイズする

  • C#
  • Python
  • Java
  • JavaScript

EdgeOptions クラスを使用して EdgeDriver クラス インスタンスを作成すると、Microsoft Edge (EdgeHTML) または Microsoft Edge (Chromium) のいずれかに、適切な EdgeDriverService クラスが作成されて起動します。

EdgeDriverService を作成する場合は、CreateChromiumService() メソッドを使用して、Microsoft Edge (Chromium) 用に構成されたものを作成します。 CreateChromiumService() メソッドは、カスタマイズを追加する必要がある場合に役立ちます。 たとえば、次のコードは詳細なログ出力を開始します。

using (var service = EdgeDriverService.CreateChromiumService())
{
    service.UseVerboseLogging = true;

    var driver = new EdgeDriver(service);
}

注意

EdgeDriverServiceEdgeDriver インスタンスに渡すときに、EdgeOptions オブジェクトを指定する必要はありません。 EdgeDriver クラスは、提供するサービスに基づいて、Microsoft Edge (EdgeHTML) または Microsoft Edge (Chromium) のいずれかの既定のオプションを使用します。 ただし、EdgeDriverServiceEdgeOptions 両方のクラスを提供する場合は、 両方が同じバージョンの Microsoft Edge に対して構成されていることを確認します。 たとえば、既定の Microsoft Edge (EdgeHTML) EdgeDriverService クラスと Chromium プロパティを EdgeOptions クラスで使用できます。 EdgeDriver クラスは、異なるバージョンの使用を防ぐためにエラーをスローします。

Chromium 固有 のオプションを使用する

UseChromium プロパティを true に設定した場合は、他の Chromium ブラウザーを自動化するときに使用される EdgeOptions クラスを使用して、同じChromium 固有のプロパティやメソッドにアクセスできます。

  • C#
  • Python
  • Java
  • JavaScript

var options = new EdgeOptions();
options.UseChromium = true;
options.AddArgument("headless");
options.AddArgument("disable-gpu");

注意

UseChromium プロパティが true に設定されている場合は、Microsoft Edge (EdgeHTML) のプロパティとメソッドは使用できません。

その他の WebDriver インストール オプション

Docker

Docker を使用する場合は、次のコマンドを実行して、Microsoft Edge (Chromium) と Microsoft Edge ドライバーがプリインストールされた構成済みのイメージをダウンロードします。

docker run -d -p 9515:9515 mcr.microsoft.com/msedge/msedgedriver

詳細については、Docker Hub の msedgedriver コンテナーに移動してください。

Internet Explorer のテスト

Internet Explorer を必要とするサイトをテストするには、Internet Explorer で Internet Explorer ドライバーを使用します。 Internet Explorer ドライバーは、Selenium プロジェクトによって維持されています。 Microsoft Edge は IE モードをサポートしていますが、Microsoft Edge で Microsoft Edge ドライバーを使用して IE モードでサイトをテストすることはできません。

Application Guard

Microsoft Defender Application Guard (Application Guard) を使用する信頼済みサイトは、Microsoft Edge ドライバーを使用して自動化できます。

Application Guard を使用する非信頼サイトは、Microsoft Edge ドライバーを使用して自動化または操作することはできません。 Application Guard は、非信頼サイトをコンテナーで起動します。このコンテナーは、Microsoft Edge ドライバーがサイトと通信するために必要なリモート デバッグ ポートを公開しません。

エンタープライズ管理者は、クラウド リソースや内部ネットワークなど、信頼済みサイトを定義します。 信頼済みサイトのリストにないサイトは、信頼できないと見なされます。 Microsoft Edge ドライバーは、InPrivate ウィンドウと信頼済みサイト リスト内のサイトの両方を自動化できます。

Application Guard の詳細については、次の場所に移動してください。

診断データの収集をオプトアウトする

既定では、Microsoft Edge ドライバーは、新しいセッション WebDriver コマンドの状態などの診断データを Microsoft に送信します。 Microsoft Edge ドライバーの診断データ収集をオフにするには、MSEDGEDRIVER_TELEMETRY_OPTOUT 環境変数を 1 に設定します。 ドライバーが収集するデータのMicrosoft Edgeについては、「プライバシー ホワイトペーパー」Microsoft Edgeを参照してください

関連項目

  • Selenium のドキュメント - Selenium のコンテキストでの WebDriver に関する情報、および Selenium を使用して自動化された WebDriver テストを書き込む方法。
  • WebDriver Microsoft Edge WebDriverテスト フレームワーク (Selenium など)、およびテスト フレームワークの使用に関するフィードバックを送信するには、デベロッパー ツール チームに問い合Microsoft Edge。