量角器:在不知道文件名的情况下测试下载文件

eLR*_*uLL 8 jasmine selenium-webdriver protractor

我按照这个答案,它看起来几乎是我需要的东西.

问题是他已经知道文件名并且我正在进行e2e测试以下载文件,但文件名取决于当前时间(即使是毫秒)所以我真的不知道名字(或者它会非常困难)为拿到它,为实现它).

我想我在这里错过了一些非常简单的东西,但我想到了两个方面:

  1. 重新创建文件名(使用返回此文件名称的相同函数)并开始检查具有该名称的文件是否存在(如果不存在),然后移动到下一毫秒,直到我找到正确的名称.
  2. 检查下载文件夹中是否存在"any"文件,如果我在那里找到一个,那么它应该是我正在下载的文件(对于这种情况,我不知道如何在量角器中检查整个文件夹).

希望你们能帮助我们提供这些替代方案(我希望对第2点有所帮助)或者给我一个更好的选择.谢谢

eLR*_*uLL 6

我最后关注@ alecxe的建议,这是我的回答:

var glob = require("glob");

browser.driver.wait(function () {
    var filesArray = glob.sync(filePattern);
    if (typeof filesArray !== 'undefined' && filesArray.length > 0) {
        // this check is necessary because `glob.sync` can return
        // an empty list, which will be considered as a valid output
        // making the wait to end.
        return filesArray;
    }
}, timeout).then(function (filesArray) {
    var filename = filesArray[0];
    // now we have the filename and can do whatever we want
});
Run Code Online (Sandbox Code Playgroud)