需要使用selenium webdriver代码中的代理捕获网络流量

时间:2014-01-03 08:15:08

标签: java firefox proxy selenium-webdriver

需要使用selenium webdriver代码中的代理捕获网络流量..我已尝试使用以下代码但在打开浏览器后google.com未加载获取错误“代理服务器拒绝连接”

public class Test_One {

/**
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
ProxyServer server = new ProxyServer(8090);
         server.start();
         server.setCaptureHeaders(true);

         server.setCaptureContent(true);
         server.newHar("test");
         DesiredCapabilities capabilities = new DesiredCapabilities();
         Proxy proxy = server.seleniumProxy();
         FirefoxProfile profile = new FirefoxProfile();
         profile.setAcceptUntrustedCertificates(true);
         profile.setAssumeUntrustedCertificateIssuer(true);
         profile.setPreference("network.proxy.http", "localhost");
         profile.setPreference("network.proxy.http_port", 8090);
         profile.setPreference("network.proxy.ssl", "localhost");
         profile.setPreference("network.proxy.ssl_port", 8090);
         profile.setPreference("network.proxy.type", 1);
         profile.setPreference("network.proxy.no_proxies_on", "");
         profile.setProxyPreferences(proxy);
         capabilities.setCapability(FirefoxDriver.PROFILE,profile);
         capabilities.setCapability(CapabilityType.PROXY, proxy);
         WebDriver driver = new FirefoxDriver(capabilities);
         driver.get("http://www.google.com");
         Har har1 = server.getHar();
         server.stop();
         driver.quit();
         }
}

2 个答案:

答案 0 :(得分:3)

最新版本的Selenium Webdriver并不真正支持流量捕获。但是,您可以使用BrowserMob代理来捕获流量。 https://github.com/lightbody/browsermob-proxy。自述文件中有关于如何使用Selenium进行此操作的示例。

答案 1 :(得分:1)

相似的主题:https://stackoverflow.com/a/55202231/2917470

您可以尝试使用moxproxy捕获或修改http流量-github回购

示例here