2016-11-17 63 views
1

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

我能够使用量角器上传单个文件,但我的应用程序需要超过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]); 

Image after performing button.click() operation 问候

阿贾伊

+0

将您的应用程序作为多个上传按钮,或者它只有一个使用此按钮,您需要上传多个文件? –

+0

如果可能的话附加用户界面的屏幕截图上传功能 –

+0

@SureshSalloju应用程序有一个按钮来上传多个文件。 – Ajay

回答

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); 
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); 
    }); 
}); 
}); 
+0

不工作投掷angularjs错误 失败:等待量角器与页面同步时出错:“[ng:test] http://errors.angularjs.org/1.5.7/ng/test” – Ajay