Playwright Java via CDP : définir un proxy sur un nouveau contexte de navigateur
Connectez-vous à un point de terminaison CDP de Chromium, puis créez un contexte avec proxy ; gardez distincts la connexion de contrôle et la route sortante du navigateur distant.
Un navigateur distant a deux chemins réseau : la connexion de contrôle de Java au service de navigateur, et les requêtes du navigateur vers les sites web. Configurez le second sur le contexte que vous créez.
Pour un service Chromium qui expose un point de terminaison CDP et autorise de nouveaux contextes :
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 est le point de terminaison actuel fourni par le service de navigateur. Son jeton d'authentification et son protocole sont indépendants du compte du proxy de transfert.
Les connexions CDP ne fonctionnent qu'avec Chromium. Un point de terminaison au protocole Playwright utilise connect à la place ; changer un suffixe d'URL sans vérifier le protocole du service n'est pas une conversion fiable.
Le proxy doit être joignable depuis l'hôte du navigateur distant. Un écouteur loopback sur la machine Java n'y est pas disponible automatiquement. Le réglage du nouveau contexte ne reconfigure pas non plus un contexte par défaut déjà existant ni la connexion WebSocket de Java.