我试图用nodejs fs删除文件,我注意到文件已生成然后尝试删除(无法删除文件),而文件甚至没有上传到带有量角器的浏览器上。使用nodejs fs创建和删除文件函数。
那么我怎么能把它们放到某个方式然后等到文件上传然后删除文件呢?
helper.generateFile(filePath);
helper.uploadFile(UploadButtonElement, filePath);
uploadButtonElm.click();
helper.deleteFile(filePath);
只有在完成以下两个操作时才能执行deleteFile。
helper.uploadFile(UploadButtonElement, filePath);
uploadButtonElm.click();
感谢。
答案 0 :(得分:2)
量角器操作计划承诺做事。他们实际上并没有这样做。因此,在任何量角器代码实际完成您的要求之前,您的助手函数将最终运行良好。使用then
显式链接您的依赖项。像这样:
helper.generateFile(filePath);
helper.uploadFile(UploadButtonElement, filePath);
uploadButtonElm.click().then(function() {
helper.deleteFile(filePath);
});
请阅读https://github.com/angular/protractor/blob/master/docs/control-flow.md和https://code.google.com/p/selenium/wiki/WebDriverJs#Understanding_the_API
答案 1 :(得分:0)
function deleteAlreadyDownloadedFiles(extension,username) {
let os = require('os');
console.log('USERNAME HERE IS'+require("os").userInfo().username);
var downloadDirectory = '/Users/'+require("os").userInfo().username+'/Downloads/';
const fs = require('fs');
const path = require('path');
const directory = '/Users/'+require("os").userInfo().username+'/Downloads/';
fs.readdir(directory, (err, files) => {
if (err) throw err;
for (const file of files) {
fs.unlink(path.join(directory, file), err => {
if (err
&& (err.code === "EACCES" || err.code === "EPERM")) {
console.log("Retrying rename file: ")
return;
}
});
}
});
}