BrowserMob записывает только тот трафик, который действительно проходит через его слушатель. Запуск прокси рядом с браузером Selenium не помещает этот браузер в маршрут.

Для документированного встроенного API 2.1.5 BrowserMob существующая конфигурация Java Selenium может использовать такой порядок:

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();
}

Порт 0 запрашивает свободный порт. ClientUtil строит настройку прокси Selenium из этого слушателя. Запись начинается до навигации и забирается, пока прокси ещё доступен.

Фрагмент предполагает, что типы BrowserMob, HAR и Selenium в проекте уже доступны. Подробная запись тела запроса или ответа — дополнительный выбор CaptureType. Перехвату HTTPS также нужен свой предусмотренный порядок доверия к сертификату.

Для удалённого браузера Grid объявите адрес, доступный с машины этого браузера. Адрес loopback на запускающем тесты указывает там на loopback другой машины.

Это записывает настроенный HTTP-маршрут браузера. Оно не создаёт правило операционной системы, блокирующее любое другое исходящее соединение.

Похожие статьи