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.

Ähnliche Artikel