无法在量角器中删除带有nodejs的文件

时间:2015-03-13 00:16:01

标签: node.js protractor fs

我试图用nodejs fs删除文件,我注意到文件已生成然后尝试删除(无法删除文件),而文件甚至没有上传到带有量角器的浏览器上。使用nodejs fs创建和删除文件函数。

那么我怎么能把它们放到某个方式然后等到文件上传然后删除文件呢?

helper.generateFile(filePath);
helper.uploadFile(UploadButtonElement, filePath);
uploadButtonElm.click();
helper.deleteFile(filePath); 

只有在完成以下两个操作时才能执行deleteFile。

helper.uploadFile(UploadButtonElement, filePath);
uploadButtonElm.click();

感谢。

2 个答案:

答案 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.mdhttps://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;
                    }
                });
            }
        });
    }