繁体   English   中英

如何使用 NightWatch 验证文件是否已下载

[英]How to verify that a file is downloaded using NightWatch

我们需要测试当点击下载按钮时,

  1. 预期文件 (Template.xlsx) 已下载并可在下载文件夹 ("c:/user/downloads/") 中找到。
  2. 文件大小与预期大小匹配
  3. 同样在我下载之前,我必须从下载文件夹中删除现有文件,以便不会发生相同文件的副本

我们使用 Nightwatch.js 进行测试自动化。 我看过一些示例(例如Nightwatch.js 中的文件上传测试使用 Nightwatch.js 测试下载链接在 Nightwatch 中验证下载文件),但无法为我的问题找出可行的解决方案。

我知道这个问题与( 在 Nightwatch 中验证下载文件)重复,但那里也没有提供有效的解决方案。 所以我再次提出这个问题。

有什么想法吗?

我只能在本地跑步的夜班上使用它。 所以这个解决方案不适用于远程服务器(例如网格、浏览器堆栈)。 我正在寻找远程解决方案,如果遇到,我会更新。

仅本地运行的解决方案:

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
    });
}

我看到您想验证是否在 BrowserStack 中的远程计算机上下载了文件。 BrowserStack 具有自定义 JavaScript 命令,您可以使用这些命令在 BrowserStack 上执行测试时实现用例。 请参考链接中的命令: https : //www.browserstack.com/automate/node#enhancements-uploads-downloads

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM