我使用来获取使用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,我将得到未定义的消息,这将导致函数失败。
还有其他我错过的环境吗。
提前谢谢!
发布于 2019-12-10 10:18:42
由于我使用其他建议的解决方案(AFAIK browsermob proxy和XPI已经很长一段时间没有更新)来解决这个问题,所以我创建了一个小npm模块来将selenium测试捕获为HAR文件- 链接。
我使用Chrome协议捕获获取事件,您可以看到我的逻辑这里
在这里添加我关于如何将selenium测试转换为API测试的完整的文章。
https://stackoverflow.com/questions/48692445
复制相似问题