从 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
我的测试脚本使用带有 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