C# RemoteWebDriver はコマンド用のプロキシを持つ
リモート Selenium セッションを作成する前に、HttpCommandExecutor に System.Net.WebProxy を設定します。
C# のテストプロセスがリモートの Selenium サービスに到達するためにフォワードプロキシを必要とする場合、その HTTP コマンドエグゼキューターに System.Net.WebProxy を接続します。
using System;
using System.Net;
using OpenQA.Selenium.Remote;
var commandProxy = new WebProxy("http://proxy.example:8080")
{
Credentials = proxyCredentials
};
var executor = new HttpCommandExecutor(
remoteWebDriverUri, TimeSpan.FromSeconds(60))
{
Proxy = commandProxy
};
using var driver = new RemoteWebDriver(
executor, browserOptions.ToCapabilities());
proxyCredentials は想定されたプロキシのアカウント、remoteWebDriverUri は設定済みのリモートサービスの URI、browserOptions には既存のブラウザーとプロバイダーの機能が含まれます。中間者が認証を要求しない場合は Credentials を省略します。その場合、リモートの WebDriver サービスが公開されており、公開プロキシ経由のアクセスが許可されていれば、HTTP プロキシ一覧が候補を提供します。
RemoteWebDriver を構築する前に、エグゼキューターのプロパティを設定します。ドライバーを作成するとリモートセッションのやり取りが始まります。エグゼキューターは、最初に必要になったときに基になる HTTP クライアントを作成します。後からプロパティを変更しても、そのクライアントがすでに使用しているハンドラーを確実に置き換えることはできません。
この経路は WebDriver のコマンドをランナーからリモートサービスへ運びます。ブラウザー自身のウェブサイトの通信は別の接続です。それにもプロキシが必要な場合は、ブラウザーのマシンから到達できるエンドポイントを使って、ブラウザーの機能を通じて構成します。
プロキシの資格情報は中間者に対して認証されます。リモートサービスの資格情報は、引き続きプロバイダーがサポートするログインまたは機能の構成に属します。