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

WebDriver を使用すると、ユーザーの操作をシミュレートすることで Microsoft Edge を自動化できます。 WebDriver を使用するテストには、ブラウザーで実行される JavaScript 単体テストに比べていくつかの利点があります。

  • WebDriver は、ブラウザで実行されている JavaScript では利用できない機能や情報にアクセスします。

  • WebDriver は、JavaScript 単体テストよりもユーザー イベントまたは OS レベルのイベントをより正確にシミュレートします。

  • WebDriver は、1 回のテスト セッションで、複数のウィンドウ、タブ、Web ページを管理します。

  • WebDriver は、特定のコンピューターで Microsoft Edge の複数のセッションを実行します。

この記事では、完全なテストではなく、生のコード サンプルを提供します。 この記事では、Selenium WebDriver の使用を開始するための完全な方法を提供しませんが、プロセスの Microsoft Edge 固有の部分についてのみ説明します。 これには、Microsoft Edge WebDriver の取得とコードでの Microsoft Edge 固有のオプションの設定が含まれます。

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

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

  • Microsoft Edge の詳細をご覧ください。
  • Microsoft Edge WebDriver。
  • WebDriver テスト フレームワーク。

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

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

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

Microsoft Edge WebDriver をダウンロードする

自動テストの作成を開始するには、次のように、インストールする Microsoft Edge WebDriver バージョンがブラウザーのバージョンと一致していることを確認します。

  1. Microsoft Edge のバージョンに edge://settings/help 移動してメモします。

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

  2. Microsoft Edge WebDriver に移動します。

  3. ページの [ 最新バージョンの取得 ] セクションで、Microsoft Edge のバージョン番号に一致するチャネル内のプラットフォームを選択します。

    Microsoft Edge WebDriver Web ページの [最新バージョンの取得] セクション

  4. ダウンロードが完了したら、msedgedriver 実行可能ファイルを希望の場所に解凍します。 実行可能ファイルが配置されているフォルダーを PATH 環境変数に追加します。

以下の「WebDriver テスト フレームワークを選択する」の説明に従って、ブラウザー ドライバー (Microsoft Edge WebDriver) と WebDriver テスト フレームワーク (Selenium WebDriver など) の両方をインストールする必要があります。 これらは個別のコンポーネントです。

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

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

Microsoft Edge WebDriver は、任意の WebDriver フレームワークで使用できます。 この記事では、Selenium WebDriver フレームワークを使用する手順について説明しますが、WebDriver をサポートする任意のライブラリ、フレームワーク、プログラミング言語を使用できます。

Selenium WebDriver は、WebDriver フレームワークの一般的な実装の 1 つです。 Selenium は、言語に依存しない、テスト フレームワークに依存しないブラウザー間のオートメーション ライブラリです。 この記事では、Selenium WebDriver を例示の例としてのみ使用します。これは、ほとんどのユーザーのニーズを満たしているためです。 Selenium を使用して Microsoft Edge を自動化する場合は、Selenium 4 を使用する必要があります。Selenium 3 はサポートされなくなりました。

Selenium WebDriver 以外の WebDriver テスト フレームワークを使用して同じタスクを実行するには、選択したフレームワークの公式ドキュメントを参照してください。

Selenium WebDriver の使用

使用可能な WebDriver フレームワークの 1 つは、Selenium WebDriver です。これは、Selenium のツール スイートの一部です。 Selenium WebDriver は、任意のプラットフォームで使用できるオープンソースのテスト フレームワークであり、Java、Python 3、C#、Ruby、JavaScript 用の言語バインドを提供します。

Selenium を使用して Microsoft Edge を自動化する場合は、Selenium 4 を使用する必要があります。Selenium 3 はサポートされなくなりました。

お好みの言語と開発環境用に Selenium をインストールする方法の詳細については、 Selenium ライブラリのインストールに関する Selenium のドキュメントを参照してください。

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

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

WebDriver セッションを開始して、新しいブラウザー インスタンスを起動します。 WebDriver セッションを閉じるまで、起動されたブラウザー インスタンスは開いたままです。

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

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

Microsoft Edge を自動化する

Selenium は、EdgeDriver クラスを使用して Microsoft Edge セッションを管理します。 次のコードは:

  1. Microsoft Edge セッションを開始します。
  2. Bing に移動するように Microsoft Edge に指示します。
  3. "WebDriver" を検索します。
  4. 数秒間スリープ状態になるため、結果を確認できます。

WebDriver で Microsoft Edge の自動化を開始するには、以下の目的の言語のコード スニペットをコピーして貼り付けます:

using OpenQA.Selenium;
using OpenQA.Selenium.Edge;
using System.Threading;

namespace EdgeDriverSample
{
    class Program
    {
        static void Main(string[] args)
        {
            var driver = new EdgeDriver();
            try
            {
                driver.Url = "https://bing.com";

                var element = driver.FindElement(By.Id("sb_form_q"));
                element.SendKeys("WebDriver");
                element.Submit();

                Thread.Sleep(5000);
            }
            finally
            {
                driver.Quit();
            }
        }
    }
}

Microsoft Edge WebDriver サービスを管理および構成する

新しいオブジェクトを EdgeDriver 作成して Microsoft Edge セッションを開始すると、Selenium は、オブジェクトが通信する新しい Microsoft Edge WebDriver プロセスを EdgeDriver 起動します。 オブジェクトのメソッドを呼び出 EdgeDriver すと、Microsoft Edge WebDriver プロセスが Quit 閉じられます。 多くのテストがある場合、各 EdgeDriver オブジェクトに独自のドライバープロセスを管理させるのは非効率的です。これは、各テストが新しいドライバー プロセスの起動を待機する必要があるためです。 代わりに、1 つの Microsoft Edge WebDriver プロセスを作成し、それを複数のテストに再利用できます。

Selenium では、 クラスを EdgeDriverService 使用して Microsoft Edge WebDriver プロセスを管理します。 テストを実行する前に EdgeDriverService を一度作成し、新しい EdgeDriver オブジェクトを作成するときにこの EdgeDriverService オブジェクトを EdgeDriver コンストラクターに渡すことができます。 EdgeDriverServiceEdgeDriver コンストラクターに渡すと、EdgeDriver オブジェクトは新しいものを作成する代わりにこの EdgeDriverService を使用します。

を使用 EdgeDriverService して、次に示すように、Microsoft Edge WebDriver プロセスのコマンド ライン オプションを構成することもできます。

次のスニペットは、新しい EdgeDriverService を作成し、詳細なログ出力を有効にします。

var service = EdgeDriverService.CreateDefaultService();
service.UseVerboseLogging = true;

var driver = new EdgeDriver(service);

Microsoft Edge オプションを構成する

EdgeOptions オブジェクトを EdgeDriver コンストラクターに渡して、Microsoft Edge ブラウザー プロセスの追加オプションを構成できます。 次のセクションでは、いくつかの一般的なシナリオで EdgeOptions を使用する方法を示します。 サポートされているオプションの完全なリストについては、「 機能と EdgeOptions」 を参照してください。

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

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

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

var driver = new EdgeDriver(options);
追加のコマンド ライン引数を渡す

EdgeOptions を使用して、セッションの作成時に Microsoft Edge ブラウザー プロセスに渡されるコマンドライン引数を構成できます。 たとえば、ヘッドレス モードで実行するようにブラウザを設定できます。

var options = new EdgeOptions();
options.AddArgument("headless");

var driver = new EdgeDriver(options);

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

Docker

Docker を使用する場合は、次のコマンドを実行して、Microsoft Edge と EdgeWebDriver が事前にインストールされている構成済みのイメージをダウンロードします。

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

詳細については、「DockerHub の msedgedriver コンテナ」を参照してください。

Application Guard

Microsoft Defender Application Guardを使用する信頼されたサイトは、Microsoft Edge WebDriver を使用して自動化できます。 Microsoft Defender Application Guard は Application Guard とも呼ばれます。

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

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

Application Guard の詳細については、以下を参照してください。

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

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

従来の Microsoft WebDriver for EdgeHTML

Microsoft WebDriver は、EdgeHTML ベースの Microsoft Edge の従来の WebDriver 実装です。 レガシ Microsoft Edge (EdgeHTML) が OS で更新されたため、Microsoft WebDriver は省略可能な Windows コンポーネントとして配布されました。 Microsoft WebDriver は、最新の Chromium ベースのバージョンの Microsoft Edge と互換性がありません。 Microsoft WebDriver は、UWP アプリの WebDriver ベースのテストを作成した開発者が引き続き利用できます。これは、これらが EdgeHTML に依存しているためですが、Microsoft WebDriver は推奨されなくなりました。

WebDriver (EdgeHTML) を参照してください。

トラブルシューティング

WebDriver を使用して Microsoft Edge を自動化する際のトラブルシューティングの考慮事項を次に示します。

開発者ツールの可用性ポリシー

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

Visual Studio テンプレートの使用

単純なテスト プロジェクトを作成する Visual Studio で提供される Microsoft Edge WebDriver テンプレートを使用している場合は、次の作業が完了していることを確認してください。

  • Microsoft Edge WebDriver をダウンロードし、PATH で使用できることを確認します。
  • WebDriver フレームワーク ( Selenium.WebDriver NuGet パッケージなど) をプロジェクトに追加します。

これらの手順を実行すると、Bingに移動するサンプル テストが正常に完了します。

Microsoft Edge 用 Selenium Tools によるエラー

新しい EdgeDriver インスタンスを作成しようとしたときに次のエラーが発生する場合は、 System.MissingMethodException: 'Method not found: 'OpenQA.Selenium.Remote.DesiredCapabilities OpenQA.Selenium.DriverOptions.GenerateDesiredCapabilities(Boolean)'以下 の「Selenium 3 から Selenium 4 へのアップグレード 」を参照してください。

Selenium 3 から Selenium 4 へのアップグレード

Selenium Tools for Microsoft Edge を使用して Selenium 3 ブラウザー テストに Microsoft Edge サポートを追加した場合は、次のようにテストを Selenium 4 に更新します。

  1. プロジェクトから [Microsoft Edge 用の Selenium ツール]を削除します。

  2. 代わりに Selenium 4 が提供する組み込みの EdgeDriver および関連するクラスを使用するようにテストを更新します。 既存の Selenium 3 テストを Selenium 4 にアップグレードする必要があります。 Selenium 4 へのアップグレードの詳細については、「Selenium 4 へのアップグレード」を参照してください。

  3. EdgeOptions.UseChromium プロパティのすべての使用法を削除します。 Selenium 4 では Microsoft Edge (Chromium ブラウザー エンジン) のみがサポートされているため、このプロパティは Selenium 4 に存在しなくなりました。

Selenium 3 はサポートされていません

WebDriver を使用して Microsoft Edge を自動化するには、Selenium を使用している場合は、Selenium 4 を使用していることを確認してください。 Selenium 3 はサポートされていません。

Selenium を使用するすべての新しいプロジェクトでは、Selenium 4 を使用する必要があります。 WebDriver を使用して Microsoft Edge を自動化するには、Selenium を使用している場合は、Selenium 4 を使用していることを確認してください。 Selenium 3 はサポートされなくなりました。

Microsoft Edge 用 Selenium Tools が使用されなくなりました

Selenium 4 には、Microsoft Edge 用の Selenium Tools は必要ありません。 Microsoft Edge 用の Selenium Tools は Selenium 3 専用でした。

Selenium 4 には既に Microsoft Edge のサポートが組み込まれているため、Selenium 4 を Microsoft Edge 用 Selenium Tools で使用しないでください。 Microsoft Edge 用 Selenium Tools を使用しようとすると、新しい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 クラスを使用していることを確認します。

関連項目