Чтобы получить только сетевые журналы до тех пор, пока страница не закончит загрузку (нет сетевых журналов ajax / async во время основного использования страницы), вы можете получить Performance Log: http://chromedriver.chromium.org/logging/performance-log
Чтобы включить ведение журнала производительности для ChromeDriver, например,
DesiredCapabilities cap = DesiredCapabilities.chrome();
LoggingPreferences logPrefs = new LoggingPreferences();
logPrefs.enable(LogType.PERFORMANCE, Level.ALL);
cap.setCapability(CapabilityType.LOGGING_PREFS, logPrefs);
RemoteWebDriver driver = new RemoteWebDriver(new URL("http://127.0.0.1:9515"), cap);
Страница журнала производительности chromium также ссылается на этот полный пример https://gist.github.com/klepikov/5457750, в котором есть код Java и python для получения журналов производительности.
Опять же, важно иметь в виду, что это будет получать сетевые запросы только до того момента, пока страница не будет загружена. После этого драйвер будет возвращать только те же журналы производительности, пока страница не перезагрузится.
Если вы хотите получать сетевые журналы асинхронно на протяжении всего использования страницы, вы можете использовать BrowserMobProxy , чтобы действовать в качестве прокси-сервера для вашего драйвера Selenium и перехватывать все эти сетевые запросы. Затем вы можете получить эти захваченные запросы из сгенерированного HAR-файла BrowserMobProxy: https://github.com/lightbody/browsermob-proxy#using-with-selenium
// start the proxy
BrowserMobProxy proxy = new BrowserMobProxyServer();
proxy.start(0);
// get the Selenium proxy object
Proxy seleniumProxy = ClientUtil.createSeleniumProxy(proxy);
// configure it as a desired capability
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(CapabilityType.PROXY, seleniumProxy);
// start the browser up
WebDriver driver = new FirefoxDriver(capabilities);
// enable more detailed HAR capture, if desired (see CaptureType for the complete list)
proxy.enableHarCaptureTypes(CaptureType.REQUEST_CONTENT, CaptureType.RESPONSE_CONTENT);
// create a new HAR with the label "yahoo.com"
proxy.newHar("yahoo.com");
// open yahoo.com
driver.get("http://yahoo.com");
// get the HAR data
Har har = proxy.getHar();
Если у вас есть файл HAR, это список сетевых событий в стиле JSON, с которым вы можете работать.