【问题标题】:Can't capture HAR Request and Response using BrowserMob-Proxy(PhantomJS)无法使用 BrowserMob-Proxy(PhantomJS) 捕获 HAR 请求和响应
【发布时间】:2017-02-13 13:51:30
【问题描述】:

我无法使用 browsermob(selenium+PhantomJS 浏览器)捕获请求和响应

请参考示例代码

server = new BrowserMobProxyServer();
server.start(0);
server.newHar("contracts"); 

能力:

DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setJavascriptEnabled(true);  capabilities.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
capabilities.setCapability(PhantomJSDriverService.PHANTOMJS_CLI_ARGS,
     new String[] {"--web-security=false", "--ssl-protocol=any", 
                    "--ignore-ssl-errors=yes"});
capabilities.setCapability("takeScreenshot", true);
URL hubUrl = new URL("http://152.188.0.42:5555/wd/hub");
server.enableHarCaptureTypes(CaptureType.REQUEST_CONTENT, CaptureType.RESPONSE_CONTENT);

启动应用程序:

driver = new RemoteWebDriver(hubUrl,capabilities);
driver.get("http://www.google.com");

创建 har 文件:

Har har = server.getHar();
FileOutputStream fos = new FileOutputStream("runnowNew.har");
har.writeTo(fos);

使用上述代码生成的har:

{
  "log":
  {
     "version":"1.2",
     "creator":{"name":"BrowserMob Proxy","version":"2.1.2","comment":""},
     "pages":[{"id":"contracts","startedDateTime":"2016-10-05T12:56:33.460+05:30","title":"contracts","pageTimings":{"comment":""},"comment":""}],
     "entries":[],
     "comment":""
  }
}

【问题讨论】:

  • 您是否在capabilities 对象的任何位置设置PROXY 功能?如果没有,PhantomJS 就不会知道它需要使用代理。

标签: java selenium-webdriver phantomjs har browsermob-proxy


【解决方案1】:

我认为问题在于您没有使用 BrowserMob Proxy 作为 Selenium 流量的代理。 您需要将 Selenium 的代理(ip & port)设置为BrowserMob Proxy 中配置的代理。 IP大概是127.0.0.1,因为你在本地工作,你可以使用server.getPort()获取BrowserMob Proxy正在监听的端口。

【讨论】:

    猜你喜欢
    • 2014-11-19
    • 1970-01-01
    • 2012-08-12
    • 2019-10-09
    • 2017-08-22
    • 1970-01-01
    • 2016-06-07
    • 2020-05-06
    • 1970-01-01
    相关资源
    最近更新 更多