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

问题描述 投票:3回答:1

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

  1. 期望的文件(Template.xlsx)已下载,并且在下载文件夹(“ c:/ user / downloads /”)中可用。
  2. 文件大小与预期大小匹配
  3. 同样,在我下载之前,我必须从下载文件夹中删除现有文件,以免出现相同文件的副本

我们正在使用Nightwatch.js进行测试自动化。我已经看到了一些示例(例如File Upload Testing in Nightwatch.jsTesting download links with Nightwatch.jsValidating download file in Nightwatch),但无法为我的问题找到可行的解决方案。

我知道这个问题是(Validating download file in Nightwatch)的重复,但是那里也没有提供有效的解决方案。所以我再次提出这个问题。

有什么想法吗?

javascript nightwatch.js
1个回答
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
    });
}
© www.soinside.com 2019 - 2024. All rights reserved.