Playwright Java tramite CDP: impostare un proxy su un nuovo contesto del browser
Connettiti a un endpoint CDP di Chromium, poi crea un contesto con proxy; tieni separati la connessione di controllo e il percorso in uscita del browser remoto.
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.