无法在量角器中使用nodejs删除文件
Unable to delete a file with nodejs in protractor
我正在尝试使用 nodejs fs 删除文件,我注意到文件已经生成,然后尝试删除(删除文件失败),而文件甚至没有使用量角器上传到浏览器。生成和删除文件功能是使用 nodejs fs 创建的。
那么我怎样才能把它们放在一起然后等到文件上传然后删除文件呢?
helper.generateFile(filePath);
helper.uploadFile(UploadButtonElement, filePath);
uploadButtonElm.click();
helper.deleteFile(filePath);
有没有办法只在以下两个动作完成时才执行deleteFile。
helper.uploadFile(UploadButtonElement, filePath);
uploadButtonElm.click();
谢谢。
Protractor operations schedule promises to do 事情。他们实际上并没有这样做。因此,您的辅助函数将在任何量角器代码实际完成您的要求之前就结束 运行。使用 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 and https://code.google.com/p/selenium/wiki/WebDriverJs#Understanding_the_API
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;
}
});
}
});
}
我正在尝试使用 nodejs fs 删除文件,我注意到文件已经生成,然后尝试删除(删除文件失败),而文件甚至没有使用量角器上传到浏览器。生成和删除文件功能是使用 nodejs fs 创建的。
那么我怎样才能把它们放在一起然后等到文件上传然后删除文件呢?
helper.generateFile(filePath);
helper.uploadFile(UploadButtonElement, filePath);
uploadButtonElm.click();
helper.deleteFile(filePath);
有没有办法只在以下两个动作完成时才执行deleteFile。
helper.uploadFile(UploadButtonElement, filePath);
uploadButtonElm.click();
谢谢。
Protractor operations schedule promises to do 事情。他们实际上并没有这样做。因此,您的辅助函数将在任何量角器代码实际完成您的要求之前就结束 运行。使用 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 and https://code.google.com/p/selenium/wiki/WebDriverJs#Understanding_the_API
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;
}
});
}
});
}