Selenium使用HAR Export xpi读取网络数据

时间:2018-02-08 18:30:07

标签: javascript selenium har

我正在使用HAR Export XPI来获取使用selenium遍历的页面的网络流量。我将XPI添加到ffv46(因为无法将XPI添加到最新的ff浏览器)。我使用了下面提到的配置文件设置 -

profile.setPreference("app.update.enabled", false);
profile.setPreference("extensions.netmonitor.har.enableAutomation", true);
profile.setPreference("extensions.netmonitor.har.contentAPIToken", "true");
profile.setPreference("extensions.netmonitor.har.autoConnect", true);
profile.setPreference("devtools.netmonitor.enabled", true);
profile.setPreference("devtools.netmonitor.har.pageLoadedTimeout", "50000");
profile.setPreference("devtools.netmonitor.har.defaultLogDir", "FOLDER_ON_SYSTEM");
profile.setPreference("devtools.netmonitor.har.enableAutoExportToFile", false);

我正在注入以下javascript来获取HAR文件。

function triggerExport() {

  var options = {
    token: "true",
    getData: true,
    fileName: "Export_%y%m%d_%H%M%S"
  };
  HAR.triggerExport(options).then(result => {
      console.log(result);
  });
};

if (typeof HAR === 'undefined') 
{
    console.log("Calling Undefined");
    addEventListener('har-api-ready', event => {
        console.log("har api ready");
        console.log(event);
        triggerExport();
    }, false);
} 
else 
{
    console.log("Calling defined");
    triggerExport();
}

但是没有生成HAR文件。有什么我想念的东西。 此外,如果我尝试在FF控制台中键入HAR,我会收到未定义的消息,这会导致该功能失败。

我还缺少其他任何设置。

提前致谢!!!!

1 个答案:

答案 0 :(得分:1)

由于我没有运气使用其他建议的解决方案解决此问题(AFAIK browsermob proxy和XPI已有相当一段时间没有更新),所以我创建了一个小npm模块来将硒测试捕获为HAR文件-{{3 }}

我使用了Chrome开发工具协议来捕获Fetch事件,您可以看到我的逻辑link