从 java 禁用系统代理

Disable system proxy from java

我的测试脚本使用带有 BrowserMob 代理服务器的 Selenium WebDriver 来模拟慢速连接。使用 BrowserMob 代理启动 Internet Explorer WebDriver 会打开系统代理。它会影响到所有互联网连接(eclipse 插件更新、邮件对应和其他应用程序)。因此我需要在测试脚本结束时禁用系统代理。如何从 java 做到这一点?

注意:停止 BrowserMob 代理服务器不会禁用系统代理设置。

我在 Internet Explorer WebDriver 中找到了解决方案。 需要启动具有 IE 特定所需功能的 Web 驱动程序,如下所示:

BrowserMobProxy server = new BrowserMobProxyServer();
server.start();

Proxy proxy = ClientUtil.createSeleniumProxy(server);

DesiredCapabilities capabilities = DesiredCapabilities.internetExplorer();
capabilities.setCapability(InternetExplorerDriver.IE_USE_PRE_PROCESS_PROXY, true);
capabilities.setCapability(CapabilityType.PROXY, proxy);

WebDriver driver = new InternetExplorerDriver(capabilities);

这里有更多信息https://github.com/SeleniumHQ/selenium/wiki/DesiredCapabilities