C# RemoteWebDriver hat einen Proxy für seine Befehle
Setzen Sie System.Net.WebProxy auf HttpCommandExecutor, bevor die entfernte Selenium-Sitzung erstellt wird.
Wenn der C#-Testprozess einen Forward-Proxy benötigt, um einen entfernten Selenium-Dienst zu erreichen, hängen Sie einen System.Net.WebProxy an seinen HTTP-Befehlsausführer:
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 ist das vorgesehene Proxy-Konto, remoteWebDriverUri ist die konfigurierte URI des entfernten Dienstes, und browserOptions enthält die vorhandenen Browser- und Anbieterfunktionen. Lassen Sie Credentials weg, wenn der Vermittler keine Authentifizierung verlangt. In diesem Fall liefert die HTTP-Proxy-Liste Kandidaten, wenn der entfernte WebDriver-Dienst öffentlich ist und der Zugriff über öffentliche Proxys erlaubt ist.
Legen Sie die Eigenschaft des Ausführers fest, bevor Sie RemoteWebDriver erstellen. Das Erstellen des Treibers startet den Austausch der entfernten Sitzung; der Ausführer erstellt seinen zugrunde liegenden HTTP-Client, wenn er zum ersten Mal benötigt wird. Eine spätere Änderung der Eigenschaft ist kein zuverlässiger Weg, den Handler zu ersetzen, den dieser Client bereits verwendet.
Diese Route überträgt WebDriver-Befehle vom Runner zum entfernten Dienst. Der eigene Website-Verkehr des Browsers ist eine separate Verbindung. Wenn auch er einen Proxy benötigt, konfigurieren Sie ihn über Browserfunktionen mit einem Endpunkt, der von der Maschine des Browsers aus erreichbar ist.
Die Proxy-Anmeldeinformationen authentifizieren sich beim Vermittler. Die Anmeldeinformationen des entfernten Dienstes gehören weiterhin zur unterstützten Anmelde- oder Funktionskonfiguration des Anbieters.