Seleniumナビゲーション前にBrowserMobのHARキャプチャを開始する
BrowserMobをブラウザの経路に置き、ナビゲーション前にHARキャプチャを開始し、プロキシを停止する前にキャプチャを取得します。
BrowserMobが記録するのは、実際に自身のリスナーを通過したトラフィックだけです。Seleniumブラウザの隣でプロキシを起動しても、そのブラウザが経路に置かれるわけではありません。
BrowserMobが文書化している2.1.5の組み込みAPIでは、既存の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経路をキャプチャします。他のすべての外向き接続を遮断するオペレーティングシステムの規則を確立するものではありません。