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

时间:2016-11-17 04:13:34

标签: angularjs protractor ng-file-upload e2e-testing

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

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

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]);

Image after performing button.click() operation 此致

的Ajay

2 个答案:

答案 0 :(得分:2)

你试过吗

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);

答案 1 :(得分:0)

您的要求似乎与数据驱动方法类似。因此,将所有输入文件路径保留在下面的函数 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);
   });
 });
});