Playwright Java sobre CDP: configurar un proxy en un contexto de navegador nuevo
Conéctate a un endpoint CDP de Chromium y crea un contexto con proxy; mantén separadas la conexión de control y la ruta de salida del navegador remoto.
Un navegador remoto tiene dos rutas de red: la conexión de control de Java con el servicio del navegador y las peticiones del navegador a los sitios web. Configura la segunda en el contexto que creas.
Para un servicio Chromium que expone un endpoint CDP y permite contextos nuevos:
import com.microsoft.playwright.*;
import com.microsoft.playwright.options.Proxy;
try (Playwright playwright = Playwright.create()) {
Browser browser = playwright.chromium().connectOverCDP(cdpEndpoint);
try {
var options = new Browser.NewContextOptions().setProxy(
new Proxy("http://proxy.example:8080")
.setUsername(proxyUser)
.setPassword(proxyPassword));
try (BrowserContext context = browser.newContext(options)) {
context.newPage().navigate("https://www.example.org/");
}
} finally {
browser.close();
}
}
cdpEndpoint es el endpoint actual que proporciona el servicio del navegador. Su token de autenticación y su protocolo son independientes de la cuenta del proxy de reenvío.
Las conexiones CDP solo funcionan con Chromium. Un endpoint con protocolo Playwright usa connect en su lugar; cambiar un sufijo de URL sin comprobar el protocolo del servicio no es una conversión fiable.
El proxy debe ser accesible desde el host del navegador remoto. Un escucha de loopback en la máquina Java no está disponible allí de forma automática. La configuración del contexto nuevo tampoco reconfigura un contexto predeterminado ya existente ni la conexión WebSocket de Java.