Playwright Java über CDP: Proxy für einen neuen Browser-Kontext setzen
Verbinde dich mit einem Chromium-CDP-Endpunkt und erzeuge dann einen Kontext mit Proxy; halte Steuerverbindung und ausgehenden Pfad des entfernten Browsers getrennt.
Ein entfernter Browser hat zwei Netzwerkpfade: die Steuerverbindung von Java zum Browserdienst und die Anfragen des Browsers an Webseiten. Konfiguriere den zweiten in dem Kontext, den du erzeugst.
Für einen Chromium-Dienst, der einen CDP-Endpunkt bereitstellt und neue Kontexte erlaubt:
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 ist der aktuelle Endpunkt, den der Browserdienst bereitstellt. Sein Authentifizierungstoken und sein Protokoll sind unabhängig vom Konto des Forward-Proxys.
CDP-Verbindungen gibt es nur mit Chromium. Ein Endpunkt mit Playwright-Protokoll nutzt stattdessen connect; ein URL-Suffix zu ändern, ohne das Protokoll des Dienstes zu prüfen, ist keine verlässliche Umstellung.
Der Proxy muss vom Host des entfernten Browsers aus erreichbar sein. Ein Loopback-Listener auf der Java-Maschine ist dort nicht automatisch verfügbar. Die Einstellung des neuen Kontexts konfiguriert auch keinen bereits vorhandenen Standardkontext oder Javas WebSocket-Verbindung um.