Enviar las órdenes RemoteWebDriver de Java a través de un proxy
Configura ClientConfig en el ejecutor de órdenes cuando el proceso Java deba llegar a un servicio WebDriver remoto mediante un proxy de salida.
Java runner → configured proxy → WebDriver service
remote browser → its own route → website
Para la primera ruta, configura el ejecutor de órdenes de 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());
Usa el punto de conexión Grid real, incluida la ruta de su despliegue. Conserva las opciones de Chrome necesarias y finaliza la sesión con driver.quit().
Esto es java.net.Proxy para la conexión HTTP del proceso Java. La capability org.openqa.selenium.Proxy de Selenium controla, en cambio, el tráfico de páginas del navegador; úsala también solo si la segunda ruta necesita un proxy.
Un fallo al crear la sesión o enviar una orden corresponde a la primera ruta. Una navegación posterior puede fallar en la segunda. La autenticación ante el intermediario del proceso Java necesita un método admitido por ese transporte HTTP; un callback de autenticación del navegador no lo configura.