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
<代码> & 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 (); } }代码>