0

我正在使用 Firefox 附加HAR 导出触发器通过 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
4

1 回答 1

0

不是真正的解决方案,而是一种解决方法:自动导出已关闭,导出以编程方式触发,如此处所述

我以前不知道这一点。但现在我认为这是一个更好的方法,因为它是

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

设置:

devtools.netmonitor.har.enableAutoExportToFile, false
devtools.netmonitor.har.forceExport, false
extensions.netmonitor.har.enableAutomation, true
extensions.netmonitor.har.contentAPIToken, "test"
于 2016-01-26T16:45:44.360 回答