Protractor在测试运行时下载文件后会增加巨大的延迟



我正在使用Protractor,并试图自动将文件从应用程序下载到本地系统。Chrome已被配置为在没有任何提示对话框的情况下下载文件。下载按钮的操作只需简单的点击:元素(by.css("#myDownloadLink").click()这是意料之中的事。然而,Protractor在这个动作之后增加了不必要的延迟。下载需要一秒钟,下载请求在1-2秒内得到解决。但是,在进入下一行之前,Protractor会在这行代码上停留大约一分钟——我想这是不必要的同步或其他什么。

有人对如何解决或至少解决这个问题有什么想法吗?比如可能以不同的方式触发下载(但仍然通过UI?)并避免Protractor同步/挂起

感谢

我会尝试使用ignoreSynchronization标志:

browser.ignoreSynchronization = true
// trigger download
browser.ignoreSynchronization = false

我试过了,但没有成功。一旦你重新打开ignoreSynchronization,它就会继续等待。解决方案如下:

你必须强迫angular立即做事:var fixSyncScript='var el=document.querySelector("body");angular.element(el).injector().get("$browser")$$completeOutstandingRequest(angular.noop);return true;';browser.executeScript(fixSyncScript).then(function(result){expect(result).toBe(true);});

最新更新