我们需要测试单击下载按钮时的情况,
我们正在使用Nightwatch.js进行测试自动化。我已经看到了一些示例(例如File Upload Testing in Nightwatch.js或Testing download links with Nightwatch.js或Validating download file in Nightwatch),但无法为我的问题找到可行的解决方案。
我知道这个问题是(Validating download file in Nightwatch)的重复,但是那里也没有提供有效的解决方案。所以我再次提出这个问题。
有什么想法吗?
答案 0 :(得分:0)
我只能在用于本地跑步的守夜人身上工作。因此,该解决方案不适用于远程服务器(例如,网格,浏览器堆栈)。我正在寻找一种远程解决方案,如果遇到问题,将会进行更新。
仅适用于本地运行的解决方案:
fs = require('fs')
async handleDownload(path, retry = 10) {
while(retry) {
await this.api.pause(1000);
if (fs.existsSync(path) && retry) {
break;
}
retry--;
if (!retry) {
throw new Error('Didn't find file in time');
}
}
return new promise(resolve => {
resolve(fs.open);
// Or do other stuff, such as read file contents
});
}
答案 1 :(得分:0)
我看到您要验证是否在BrowserStack的远程计算机上下载了文件。 BrowserStack具有自定义JavaScript命令,您可以在BrowserStack上执行测试时使用它来实现用例。请参考链接中的命令:https://www.browserstack.com/automate/node#enhancements-uploads-downloads