我跟着这个答案 https://stackoverflow.com/a/27031924/858913它看起来几乎就是我需要的东西。
问题是他已经知道文件名,而我正在执行下载文件的 e2e 测试,但文件名取决于当前时间(即使是毫秒),所以我真的不知道名称(否则会非常困难)为拿到它,为实现它)。
我认为我在这里错过了一些非常简单的东西,但我正在考虑两种方法:
- 重新创建文件名(使用返回该文件名称的相同函数)并开始检查是否存在具有该名称的文件,如果不存在,则移至下一毫秒,直到找到正确的名称。
- 检查下载文件夹是否存在“任何”文件,如果我在那里找到一个文件,那么它应该是我正在下载的文件(对于这种情况,我不知道如何检查量角器中的整个文件夹)。
希望你们能帮助我找到这些替代方案(我想在第 2 点方面得到一些帮助)或者给我一个更好的替代方案。谢谢
我最终遵循了@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
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)