Quando il processo di test C# necessita di un proxy di inoltro per raggiungere un servizio Selenium remoto, collegare un System.Net.WebProxy al suo esecutore di comandi HTTP:

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 è l'account proxy previsto, remoteWebDriverUri è l'URI configurato del servizio remoto e browserOptions contiene le capacità esistenti del browser e del provider. Omettere Credentials quando l'intermediario non richiede l'autenticazione. In tal caso, il elenco di proxy HTTP fornisce candidati se il servizio WebDriver remoto è pubblico e l'accesso tramite proxy pubblici è consentito.

Impostare la proprietà dell'esecutore prima di costruire RemoteWebDriver. La creazione del driver avvia lo scambio della sessione remota; l'esecutore crea il proprio client HTTP sottostante quando è necessario per la prima volta. Una modifica successiva della proprietà non è un modo affidabile per sostituire il gestore già utilizzato da quel client.

Questa rotta trasporta i comandi WebDriver dall'esecutore al servizio remoto. Il traffico web del browser stesso è una connessione separata. Se anche questo necessita di un proxy, configurarlo tramite le capacità del browser usando un endpoint raggiungibile dalla macchina del browser.

Le credenziali del proxy si autenticano presso l'intermediario. Le credenziali del servizio remoto appartengono ancora alla configurazione di accesso o delle capacità supportata dal provider.

Articoli correlati