用 Proxy.extractFrom 读取 Selenium Java 的代理能力
通过 Proxy.extractFrom 读取 Java WebDriver 会话的代理能力,而不是假设返回的原始值已经是 Proxy 实例。
返回的 WebDriver 能力是序列化后的数据。其中的代理条目可能是一个 map,而不是已经存在的 org.openqa.selenium.Proxy 对象。
对于 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 决策。缺少手动条目同样不能单独证明浏览器没有来自系统的代理路由。