angularjs - 如何在 Protractor 中使用多个上传按钮上传多个文件?

标签 angularjs testing protractor

  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/

相关文章:

javascript - 将 HTML 元素附加到现有元素的 AngularJS 指令

javascript - AngularJS 客户端 MVC 模式?

javascript - Puppeteer 仅用于 chrome 浏览器吗?

ruby-on-rails - rails : method works but test wont pass 中的 rspec 模型测试

javascript - 循环将选择下拉列表中的所有元素

angularjs - 使用 Django Rest Framework 通过自定义序列化器 CharField 获取此函数的无效关键字参数

javascript - angularjs/signalR Bootstrap 进度条不随 Controller 更改而更新

testing - 具有多个用户的验收测试页面

javascript - 有没有一种简单的方法来确定 Protractor 是否返回 promise ?

javascript - 如何报告 Protractor-jasmine 中每个测试的执行时间?