Un browser remoto ha due percorsi di rete: la connessione di controllo di Java al servizio del browser e le richieste del browser ai siti web. Configura il secondo sul contesto che crei.

Per un servizio Chromium che espone un endpoint CDP e consente nuovi contesti:

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 è l'endpoint attuale fornito dal servizio del browser. Il suo token di autenticazione e il suo protocollo sono indipendenti dall'account del proxy di inoltro.

Le connessioni CDP funzionano solo con Chromium. Un endpoint con protocollo Playwright usa invece connect; cambiare un suffisso dell'URL senza verificare il protocollo del servizio non è una conversione affidabile.

Il proxy deve essere raggiungibile dall'host del browser remoto. Un listener loopback sulla macchina Java non è disponibile lì automaticamente. L'impostazione del nuovo contesto non riconfigura nemmeno un contesto predefinito già esistente né la connessione WebSocket di Java.

Articoli correlati