使用 ng-file-upload 量角器 E2E 测试多个文件上传

protractor E2E TEST multiple file upload using ng-file-upload

我正在使用量角器为 angularjs 应用程序编写 E2E 测试用例。我的应用程序具有多个文件上传作为其功能之一。因此,要为我的应用程序编写 E2E 测试用例,我必须自动执行多个文件上传。

我可以使用量角器上传单个文件,但我的应用程序需要 1 个以上的文件才能无缝工作。

browser.get(localUrl);
var button = element(by.css('[ngf-select]'));
button.click();
var input = element(by.css('input[type="file"]'));
input.sendKeys([ absolutePath, absolutePath1, absolutePath2]);

问候

阿杰

您的要求似乎是 数据驱动 方法。因此,将所有输入文件路径保留在下面的函数 arrayOfData() 中,它会阻止迭代,直到所有文件都上传完毕。您可以按照以下代码:

describe('Data driven test spec', function () { 
   function arrayOfData() {
     return [
          {
            "absolutePath": "/PathToFile1",
          },
          {
            "absolutePath": "/PathToFile2",
          },
          {
            "absolutePath": "/PathToFile3",
          }, 
      ]
    }

beforeAll(function(){
   browser.get(localUrl);
})

using(arrayofData, function (inputData) {
 it('test case logic to be executed for each set of data', function () {
     var button = element(by.css('[ngf-select]'));
     var input = element(by.css('input[type="file"]'));
     button.click();
     input.sendKeys(inputData.absolutePath);
   });
 });
});

你试过了吗

browser.get(localUrl);

var button = element(by.css('[ngf-select]'));

button.click();

var input = element(by.css('input[type="file"]'));

input.sendKeys( absolutePath + "\n" + absolutePath1 + "\n" + absolutePath2);