【问题标题】:protractor E2E TEST multiple file upload using ng-file-uploadprotractor E2E TEST 使用 ng-file-upload 上传多个文件
【发布时间】:2016-11-17 04:13:34
【问题描述】:

我正在使用量角器为 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]);

问候

阿杰

【问题讨论】:

  • 您的应用程序是作为多个上传按钮还是只有一个使用此按钮需要上传多个文件?
  • 如果可能的话,附上上传功能的用户界面截图
  • @SureshSalloju 应用程序只有一个按钮来上传多个文件。
  • 实现一个循环操作并将上面的代码放入其中。会的
  • @SureshSalloju 你能提供一个伪代码来实现上述功能吗?

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


【解决方案1】:

你试过了吗

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-08
    • 2016-11-09
    • 2015-12-01
    • 2018-04-02
    • 2017-08-16
    • 2016-01-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多