2015-09-24 2 views
1

У меня есть страница создания, в которой есть текстовое поле и выпадающий список, я хочу создать элемент для каждого раскрывающегося списка. После создания отдельного элемента он перенаправляется на редактирование страницы, и мы должны перейти к созданию страницы и создать элемент со вторым выпадающим значением итеративно.Повторяя условие теста итеративно в тестовом примере транспортира не работает

Я пытаюсь выполнить итерацию над значениями выпадающего списка и пытаюсь создать элемент под каждым условием, но тест существует после создания элемента intial и не создает элемент для второго значения выпадающего списка.

describe('When create case form is valid', function(){ 
      it('Should be creating cases', function(){ 
       browser.get("xyz.com"); 
       browser.waitForAngular(); 
       element(by.id("create")).click(); 
       element.all(by.options('caseSubType.specID as caseSubType.specName for caseSubType in vm.newCaseSubTypes')).each(function(elem, index) { 
        elem.getText().then(function (text) { 
         elem.click(); 
         element(by.model('vm.newCaseSummary')).sendKeys('test'); 
         $('button[ng-disabled="!vm.hasClientIDForNewCase()"]').click(); 
         browser.waitForAngular(); 
         browser.get("xyz.com"); 
         browser.waitForAngular(); 
         element(by.id("create")).click(); 
        }) 
       }) 
      }); 
     }); 

HTML для страницы создания является:

<table> 
<tr> 
<td>Summary</td> 
<td><input type="text" class="form-control input-sm" id="txtNewCaseSummary" ng-model="vm.newCaseSummary" ng-disabled="!vm.hasClientIDForNewCase()" name="caseSummary" required></td> 
</tr> 
<tr> 
<td>Type</td> 
<td> 
<select class="form-control input-sm" ng-model="vm.newCaseSubTypeID" ng-options="caseSubType.specID as caseSubType.specName for caseSubType in vm.newCaseSubTypes" name="caseSubType"> 
</td> 
</tr> 
<tr> 
<td> 
<button id="create" type="submit" class="btn btn-primary" ng-disabled="!vm.hasClientIDForNewCase()">Create New Case</button> 
</td> 
</tr> 
</table> 

Можно ли предложить какой-то другой подход, если это не правильный подход или предоставьте решение с текущим подходом.

+0

Можете ли вы объяснить свой вопрос немного больше о том, как ваш веб-страница работает и что именно вы пытаетесь автоматизировать? И, вероятно, также разместите свой html. Это выглядит очень расплывчато, когда мы пытаемся это понять. –

+0

У меня есть форма на странице «Создать страницу» с текстовым полем с моделью «vm.newCaseSummary» и выпадающим списком с ng-repeat = 'caseSubType.specID как caseSubType.specName для caseSubType в vm.newCaseSubTypes' .. Теперь на странице создания страницы I хотите создать элемент для каждого из выпадающего элемента, итерации над выпадающими значениями, означает, что он должен создавать элемент с выпадающим значением параметра 1, значением параметра 2, значением параметра 3 и т. д. Я не хочу жестко указывать вариант выпадающего списка который я хочу выбрать, ни я не хочу выбирать dropdown, используя функции first(), last(). – GP12

+0

Каждый раз, когда элемент создается на странице «Создать», он перенаправляется на экран «Правка», там я перенаправляюсь на создание страницы, и я хочу выбрать следующее значение выпадающего списка, чтобы создать элемент для каждого значения выпадающего списка – GP12

ответ

0

Я предложил бы делать это рекурсивно:

var cases = element.all(by.options('caseSubType.specID'); 
createCases(cases, 0); 

var createCases = function(cases, i) { 
    if (i = cases.length) 
     return; 

    browser.get("xyz.com"); 
    //browser.waitForAngular(); NOT needed, if it's an angular page 
    element(by.id("create")).click(); 
    cases[i].click(); 
    element(by.model('vm.newCaseSummary')).sendKeys('test'); 
    $('button[ng-disabled="!vm.hasClientIDForNewCase()"]').click(); 
    createCases(cases, i + 1); 
} 
Смежные вопросы