Instradare i comandi RemoteWebDriver di Java attraverso un proxy
Configurate ClientConfig sull’esecutore dei comandi quando il processo Java deve raggiungere un servizio WebDriver remoto tramite un proxy diretto.
Java runner → configured proxy → WebDriver service
remote browser → its own route → website
Per il primo percorso, configurate l’esecutore dei comandi Java:
import java.net.InetSocketAddress;
import java.net.Proxy;
import java.net.URI;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.remote.HttpCommandExecutor;
import org.openqa.selenium.remote.RemoteWebDriver;
import org.openqa.selenium.remote.http.ClientConfig;
var proxy = new Proxy(Proxy.Type.HTTP,
new InetSocketAddress("proxy.example", 8080));
var config = ClientConfig.defaultConfig()
.baseUri(URI.create("https://grid.example/"))
.proxy(proxy);
var executor = new HttpCommandExecutor(config);
var driver = new RemoteWebDriver(executor, new ChromeOptions());
Usate l’endpoint Grid effettivo, compreso il percorso di distribuzione. Conservate le opzioni Chrome necessarie e terminate la sessione con driver.quit().
Si tratta di java.net.Proxy per la connessione HTTP del processo Java. La capability org.openqa.selenium.Proxy di Selenium controlla invece il traffico delle pagine del browser; configuratela in aggiunta solo se il secondo percorso richiede un proxy.
Un errore nella creazione della sessione o nell’invio di comandi riguarda il primo percorso. Una navigazione successiva può fallire sul secondo. L’autenticazione presso l’intermediario del processo Java richiede un metodo supportato da quel trasporto HTTP; un callback di autenticazione del browser non la configura.