BrowserMob zeichnet nur Datenverkehr auf, der tatsächlich durch seinen Listener läuft. Den Proxy neben einem Selenium-Browser zu starten, bringt diesen Browser nicht auf den Pfad.

Für die dokumentierte eingebettete 2.1.5-API von BrowserMob kann ein bestehendes Java-Selenium-Setup diese Reihenfolge verwenden:

BrowserMobProxy proxy = new BrowserMobProxyServer();
proxy.start(0);
try {
    ChromeOptions options = new ChromeOptions();
    options.setProxy(ClientUtil.createSeleniumProxy(proxy));
    WebDriver driver = new ChromeDriver(options);
    try {
        proxy.newHar("example-page");
        driver.get("http://www.example.com/");
        Har capture = proxy.getHar();
        capture.writeTo(new java.io.File("page.har"));
    } finally {
        driver.quit();
    }
} finally {
    proxy.stop();
}

Port 0 fragt nach einem freien Port. ClientUtil baut die Selenium-Proxy-Einstellung aus diesem Listener. Die Aufzeichnung beginnt vor der Navigation und wird abgerufen, solange der Proxy noch verfügbar ist.

Das Fragment setzt voraus, dass die BrowserMob-, HAR- und Selenium-Typen des Projekts bereits verfügbar sind. Die detaillierte Aufzeichnung von Anfrage- oder Antwortkörpern ist eine zusätzliche CaptureType-Wahl. HTTPS-Interception braucht außerdem ihre vorgesehene Zertifikatsvertrauensregelung.

Für einen entfernten Grid-Browser ist eine Adresse anzukündigen, die von der Maschine dieses Browsers erreichbar ist. Eine Loopback-Adresse auf dem Test-Runner benennt dort den Loopback einer anderen Maschine.

Dies zeichnet den konfigurierten HTTP-Pfad des Browsers auf. Es legt keine Betriebssystemregel an, die jede andere ausgehende Verbindung blockiert.

Ähnliche Artikel