Playwright Java via CDP: een proxy instellen op een nieuwe browsercontext
Maak verbinding met een Chromium CDP-eindpunt en maak vervolgens een context met proxy; houd de besturingsverbinding en de uitgaande route van de externe browser gescheiden.
Een externe browser heeft twee netwerkpaden: de besturingsverbinding van Java naar de browserservice en de verzoeken van de browser aan websites. Configureer het tweede op de context die je maakt.
Voor een Chromium-service die een CDP-eindpunt aanbiedt en nieuwe contexten toestaat:
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 is het huidige eindpunt dat de browserservice levert. Het authenticatietoken en het protocol ervan zijn onafhankelijk van het account van de doorstuurproxy.
CDP-verbindingen werken alleen met Chromium. Een eindpunt met Playwright-protocol gebruikt in plaats daarvan connect; een URL-achtervoegsel wijzigen zonder het protocol van de service te controleren is geen betrouwbare conversie.
De proxy moet bereikbaar zijn vanaf de host van de externe browser. Een loopback-listener op de Java-machine is daar niet automatisch beschikbaar. De instelling van de nieuwe context herconfigureert ook geen bestaande standaardcontext of de WebSocket-verbinding van Java.