Firefox 自动化可以在不把个人浏览器配置复制进测试的情况下请求自动代理检测。创建 WebDriver 会话时,请指定预期的代理模式。

使用 Selenium 的 Java API,自动检测的配置可以这样表达:

Proxy proxy = new Proxy().setAutodetect(true);
FirefoxOptions options = new FirefoxOptions().setProxy(proxy);
WebDriver driver = new FirefoxDriver(options);

这些类属于 Selenium。检测仍取决于浏览器所在机器的网络以及适用的浏览器策略。这并不保证那里一定存在 WPAD 服务。

如果 PAC URL 已经已知,则改用该 URL 创建单独的配置:

Proxy proxy = new Proxy()
    .setProxyAutoconfigUrl("https://config.example/proxy.pac");
FirefoxOptions options = new FirefoxOptions().setProxy(proxy);

只使用一种一致的模式。手动填写的 HTTP 和 SSL 代理字段、自动检测以及指定的 PAC URL 描述的是获取路由的不同方式。避免把它们组合在同一个对象中并依赖偶然的优先级。

PAC 脚本可以按目的地选择多个端点和直接例外。把它的最后一个代理地址复制到手动设置中,会用固定路由取代该策略。显式的 PAC 模式则把脚本保留为配置输入。

在远程 Grid 上,浏览器节点会获取脚本并连接所选代理。从测试运行器可以访问的 URL,从该节点可能无法访问。检查配置时,请把实际生效的能力、脚本分发和代理连接的证据放在一起。

相关文章