var path = require('path'),
uploadInput = element(by.css("input[type=file]")),
fileToUpload = "../../download.jpeg",
absolutePath = path.resolve(__dirname, fileToUpload);
uploadInput.sendKeys(absolutePath);
$('input[type="file"]').sendKeys(absolutePath);
对于一个文件,以上工作正常。我需要在单个页面中使用多个文件上传按钮测试多个文件上传。如何将不同的文件传递到每个相应的文件上传按钮?
最佳答案
要选择所有文件上传按钮 - 使用元素数组查找器 element.all()
或 $$()
并遍历所有输入元素以上传文件
引用here了解更多详情
我在下面建议了一种方法,您可以将所有文件映射到它们相应的文件类型。
我假设您的输入元素上有一个指示器 - 以属性的形式 - label
但您可以根据您的要求修改它。
var files ={
textFile: '../../download.txt',
pdfFile: '../../pdf.pdf',
jpgFile: '../../download.jpeg'
}
element.all(by.css('input[type="file"]')).then(function(inputElements) {
return inputElements.forEach(function(inputElement) {
return inputElement.getAttribute('label').then(function(fileType){
return inputElement.sendKeys(path.resolve(__dirname, files[fileType]));
});
});
});
关于angularjs - 如何在 Protractor 中使用多个上传按钮上传多个文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41663422/