Avviare la cattura HAR di BrowserMob prima della navigazione Selenium
Mettete BrowserMob nel percorso del browser, avviate la cattura HAR prima della navigazione e recuperate la cattura prima di fermare il proxy.
BrowserMob registra solo il traffico che passa davvero attraverso il suo listener. Avviare il proxy accanto a un browser Selenium non mette quel browser sul percorso.
Per l'API incorporata 2.1.5 documentata di BrowserMob, una configurazione Java Selenium esistente può usare questo ordine:
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();
}La porta 0 chiede una porta disponibile. ClientUtil costruisce l'impostazione proxy di Selenium da quel listener. La cattura inizia prima della navigazione e viene recuperata mentre il proxy è ancora disponibile.
Il frammento presuppone che i tipi BrowserMob, HAR e Selenium del progetto siano già disponibili. La cattura dettagliata del corpo di richiesta o risposta è una scelta CaptureType aggiuntiva. Anche l'intercettazione HTTPS richiede la sua disposizione prevista di fiducia nel certificato.
Per un browser Grid remoto, annunciate un indirizzo raggiungibile dalla macchina di quel browser. Un indirizzo loopback sul runner di test lì identifica il loopback di un'altra macchina.
Questo cattura il percorso HTTP configurato del browser. Non stabilisce una regola del sistema operativo che blocchi ogni altra connessione in uscita.