O BrowserMob só registra o tráfego que realmente passa pelo seu listener. Iniciar o proxy ao lado de um navegador Selenium não coloca esse navegador na rota.

Para a API embutida 2.1.5 documentada do BrowserMob, uma configuração Java Selenium existente pode usar esta ordem:

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

A porta 0 pede uma porta disponível. O ClientUtil constrói a configuração de proxy do Selenium a partir desse listener. A captura começa antes da navegação e é obtida enquanto o proxy ainda está disponível.

O trecho presume que os tipos BrowserMob, HAR e Selenium do projeto já estão disponíveis. A captura detalhada do corpo da requisição ou da resposta é uma escolha adicional de CaptureType. A interceptação HTTPS também precisa do seu arranjo previsto de confiança no certificado.

Para um navegador Grid remoto, anuncie um endereço alcançável a partir da máquina desse navegador. Um endereço de loopback no executor de testes indica ali o loopback de outra máquina.

Isto captura a rota HTTP configurada do navegador. Não estabelece uma regra do sistema operacional que bloqueie qualquer outra conexão de saída.

Artigos relacionados