Iniciar la captura HAR de BrowserMob antes de la navegación de Selenium
Coloque BrowserMob en la ruta del navegador, inicie la captura HAR antes de la navegación y recupere la captura antes de detener el proxy.
BrowserMob solo registra el tráfico que realmente pasa por su listener. Iniciar el proxy junto a un navegador Selenium no pone ese navegador en la ruta.
Para la API embebida 2.1.5 documentada de BrowserMob, una configuración de Java Selenium existente puede usar este orden:
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();
}El puerto 0 pide un puerto disponible. ClientUtil construye la configuración de proxy de Selenium a partir de ese listener. La captura empieza antes de la navegación y se recupera mientras el proxy sigue disponible.
El fragmento supone que los tipos BrowserMob, HAR y Selenium del proyecto ya están disponibles. La captura detallada del cuerpo de la petición o de la respuesta es una elección adicional de CaptureType. La interceptación HTTPS también necesita su disposición prevista de confianza en el certificado.
Para un navegador Grid remoto, anuncie una dirección accesible desde la máquina de ese navegador. Una dirección de loopback en el ejecutor de pruebas identifica allí el loopback de otra máquina.
Esto captura la ruta HTTP configurada del navegador. No establece una regla del sistema operativo que bloquee cualquier otra conexión saliente.