транспортир E2E TEST загрузка нескольких файлов с использованием ng-file-upload

Я писал тестовый пример E2E, используя транспортир для приложения angularjs. В моем приложении есть загрузка нескольких файлов в качестве одной из его функций. Итак, чтобы написать тестовый пример 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]);

Изображение после выполнения операции button.click() С уважением

Аджай


person Ajay    schedule 17.11.2016    source источник
comment
у вашего приложения есть несколько кнопок загрузки или у него есть только одна, с помощью этой кнопки вам нужно загрузить несколько файлов?   -  person Optimworks    schedule 17.11.2016
comment
если возможно, прикрепите скриншот пользовательского интерфейса для загрузки функций   -  person Optimworks    schedule 17.11.2016
comment
Приложение @SureshSalloju имеет одну кнопку для загрузки нескольких файлов.   -  person Ajay    schedule 17.11.2016
comment
Реализуйте операцию цикла и поместите в нее приведенный выше код. это будет сделать   -  person Optimworks    schedule 17.11.2016
comment
@SureshSalloju, не могли бы вы предоставить псевдокод для реализации вышеуказанной функциональности?   -  person Ajay    schedule 17.11.2016
comment
конечно, дай несколько минут   -  person Optimworks    schedule 17.11.2016
comment
Пожалуйста, прикрепите скриншот после button.click(); операция?   -  person Optimworks    schedule 17.11.2016
comment
@SureshSalloju. Селектор файлов открывается после операции button.click(). Пожалуйста, найдите скриншоты в вопросе. Как загрузить несколько файлов с помощью input.sendKeys() в ng-file-upload?   -  person Ajay    schedule 17.11.2016


Ответы (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);
person Sushant Kr    schedule 18.11.2016

Ваше требование похоже на подход Data Driven. Итак, сохраните все пути к входным файлам в приведенной ниже функции 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);
   });
 });
});
person Optimworks    schedule 17.11.2016
comment
Не работает выдача ошибки angularjs. Ошибка: ошибка при ожидании синхронизации Protractor со страницей: [ng:test] errors.angularjs.org/1.5.7/ng/test - person Ajay; 17.11.2016