HAR导出触发器:autoexport后,har文件中缺少请求

时间:2016-01-25 09:53:15

标签: python-2.7 selenium firefox-addon robotframework har

我使用Firefox附加组件HAR export trigger进行Robotframework / Selenium的测试自动化。该测试基本上导航到一个网页并greps导出的har文件以获取某些表达式。测试有时会失败。

在这些情况下,我注意到har文件中的请求(大约20个)远远少于测试用例使用的浏览器窗口的网络选项卡(大约70个)。如果我在测试用例停止后手动导出这些请求,则会按预期导出所有请求。

所以我猜,有些东西正在打断导出功能(虽然没有打开其他页面而浏览器没有关闭)。我可以使用一个愚蠢的Sleep,但测试客户端是否有更聪明的方法来检查导出是否仍在进行中?有些JS调用可能还是回调?

我试图等待特定数量的导出文件存在,但这不能可靠地运行。

我看过像devtools.netmonitor.har.jsonpCallback这样的参数但不知道如何使用它。我的设置是

("devtools.netmonitor.enabled", true);
("devtools.netmonitor.har.compress", false);
("devtools.netmonitor.har.defaultFileName", "Autoexport_%y%m%d_%H%M%S");
("devtools.netmonitor.har.defaultLogDir", <somepath>);
("devtools.netmonitor.har.enableAutoExportToFile", true);
("devtools.netmonitor.har.forceExport", true);   
("devtools.netmonitor.har.includeResponseBodies", false);
("devtools.netmonitor.har.jsonp", false);
("devtools.netmonitor.har.jsonpCallback", false);
("devtools.netmonitor.har.pageLoadedTimeout", "2500");

版本:

Firefox 43.0, 
Python 2.7.8, 
selenium 2.48.0, 
robotframework 3.0, 
robotframework-selenium2library 1.7.4, 
harexporttrigger-0.5.0-beta.7

1 个答案:

答案 0 :(得分:0)

不是真正的解决方案,而是一种解决方法:关闭Autoexport,按照here描述的方式以编程方式触发导出。

之前我没有意识到这一点。但现在我认为这是一个更好的方法,因为它是

  • 更稳定
  • 表现更好
  • 允许更多控制

设定:

devtools.netmonitor.har.enableAutoExportToFile, false
devtools.netmonitor.har.forceExport, false
extensions.netmonitor.har.enableAutomation, true
extensions.netmonitor.har.contentAPIToken, "test"