Proxy.extractFrom で Selenium Java のプロキシ設定を読む
返された生の値がすでに Proxy インスタンスだと決めつけず、Proxy.extractFrom を使って Java WebDriver セッションのプロキシ設定を読む方法を説明します。
返される WebDriver のケイパビリティはシリアライズされたデータです。そのプロキシ項目は、既存の org.openqa.selenium.Proxy オブジェクトではなく map である場合があります。
ChromeDriver や RemoteWebDriver のインスタンスでは、Selenium Java が変換用のヘルパーを提供しています:
Proxy proxy = Proxy.extractFrom(driver.getCapabilities());
if (proxy != null) {
System.out.println(proxy.getProxyType());
System.out.println(proxy.getHttpProxy());
System.out.println(proxy.getSslProxy());
}
このヘルパーは map と Proxy インスタンスのどちらも扱います。取り出せる対応値がない場合は null を返します。getCapability("proxy") の直接 cast は一方の表現だけを前提とするため、もう一方では失敗することがあります。
確認するフィールドとモードを組み合わせて扱ってください。PAC やシステム設定には、同じ手動設定の HTTP と HTTPS のエンドポイント文字列が含まれるとは限りません。
ケイパビリティは設定データであり、ヘルスチェックではありません。リスナーが接続を受け付けたことを証明するものでも、宛先ごとの PAC 判断をすべて報告するものでもありません。手動設定の項目がないことも、ブラウザにシステム由来のプロキシ経路がないことを単独で証明するものではありません。