使用harexporttrigger导出浏览器哈尔数据

  

1,环境

  

1) Firefox 45.0
下载地址:http://ftp.mozilla.org/pub/firefox/releases

  

2) harexporttrigger-0.5.0-beta.10.xpi
下载地址:http://www.softwareishard.com/blog/har-export-trigger/
https://github.com/firebug/har-export-trigger/releases

  3)selenium-java-2.53.1.jar

  
 <代码> & lt; dependency>
  & lt; groupId> org.seleniumhq.selenium
  & lt; artifactId> selenium-java
  & lt; version> 2.53.1
  & lt;/dependency>  
  

2,实现代码

  
 <代码>
  公共静态字符串BROWSER_PATH=" C: \ \程序文件\ \ Mozilla Firefox \ \ firefox.exe”;
  
  公共静态字符串HAR_EXPORTTRIGGER_PATH=" D: \ \ firefoxxpi \ \ harexporttrigger-0.5.0-beta.10。xpi”;
  
  私人最终的静态字符串HARDIR=癲: \ \ firefoxharlog”;
  
  公共空间init () {
  System.setProperty (“webdriver.firefox。本”,BROWSER_PATH);
  }
  
  私人FirefoxProfile buildNetmonitorProfile()抛出IOException {
  FirefoxProfile profile=new FirefoxProfile ();//加载扩展
  文件harExport=新文件(HAR_EXPORTTRIGGER_PATH);//根据需要调整路径
  profile.addExtension (harExport);//启用自动化没有新的HAR文件创建为每个加载页面。
  profile.setPreference (“extensions.netmonitor.har.enableAutomation”,真正的);//设置为一个令牌,因此传递到所有HAR API调用来验证用户。
  profile.setPreference (“extensions.netmonitor.har.contentAPIToken”、“测试”);//设置如果你想哈尔没有开发人员工具箱开放对象可用。
  profile.setPreference (“extensions.netmonitor.har.autoConnect”,真正的);//启用netmonitor
  profile.setPreference (“devtools.netmonitor.enabled”,真正的);//如果设置为true最后HAR文件压缩。这可能是相当大的磁盘空间优化特别是HTTP响应的身体是包括在内。
  profile.setPreference (“devtools.netmonitor.har.compress”,假);//默认目标HAR文件的名称。默认的文件名格式器支持
  profile.setPreference (“devtools.netmonitor.har.defaultFileName”、“Autoexport_ y % % m % d_ % H % m % S”);//生成HAR文件的默认日志目录。如果空的所有自动生成HAR文件存储在& lt; FF-profile>/HAR/日志
  profile.setPreference (“devtools.netmonitor.har.defaultLogDir”, HARDIR);//如果这是真的,每创建一个新的HAR文件自动加载页面。
  profile.setPreference (“devtools.netmonitor.har.enableAutoExportToFile”,真正的);//创建结果HAR文件即使没有HTTP请求。
  profile.setPreference (“devtools.netmonitor.har.forceExport”,真正的);//如果设置为true, HTTP响应的身体也包含在哈尔文件(可以产生的数据量要大很多)。
  profile.setPreference (“devtools.netmonitor.har.includeResponseBodies”,假);//如果设置为true导出格式是竖琴(JSONP支持语法,很容易转移跨域)
  profile.setPreference (“devtools.netmonitor.har.jsonp”,假);//缺省名称JSONP回调(用于竖琴格式)
  profile.setPreference (“devtools.netmonitor.har.jsonpCallback”,假);//时间(女士)auto-exporter应该等待出口前的最后完成请求后HAR文件。
  profile.setPreference (“devtools.netmonitor.har.pageLoadedTimeout”、“2500”);//防止Firefox祝辞=65从自动更新而在自动化。//profile.setPreference (“app.update。disabledForTesting”、“真正的”);//profile.setPreference (“devtools.console.stdout。内容”,“真正的”);
  
  返回配置文件;
  }
  
  公共空间解答(字符串url){抛出异常
  WebDriver司机=零;
  尝试{
  FirefoxProfile profile=buildNetmonitorProfile ();
  
  司机=new FirefoxDriver(配置文件);//存放哈尔数据的路径(目录)
  最终文件harDir=新文件(harDir);//获取当前的文件数(用于下面判断文件是否生成)
  最后一个int numFiles=harDir.listFiles . length ();//访问资源
  driver.get (url);//等待创建好HAR文件
  for (int c=0;c<30;c++) {
  如果(harDir.listFiles ()。长度比;numFiles) {
  打破;
  }
  thread . sleep (1000 l);
  }
  }
  捕获(异常exc) {
  System.err。println(“错误——比;“+ exc);
  }
  如果(司机!=null) {
  driver.quit ();
  }
  } 

使用harexporttrigger导出浏览器哈尔数据