2014-01-29 3 views
2

Я пытаюсь получить последнюю строку таблицы ng-repeat (ed) через транспортир, чтобы проверить и убедиться, что объект, который я только что создал в предыдущем тестовом прогоне, появляется. Я дошел до того, что получил весь текст строки, но не могу понять, как пройти через пробную версию и ошибку, как получить каждый столбец последней строки как часть массива, чтобы я мог проверить каждую часть, а затем в последнем столбце У меня есть кнопки для кликов, которые станут следующим шагом.AngularJS e2e Тестирование с помощью прототипа

код у меня до сих пор:

var elems = element.all(by.repeater('alert in alerts')); 
elems.last().then(function(elm) { 
    console.log(expect(elm.getText()).toMatch('/testRunner/')); 
}); 

Как уже упоминалось выше, ожидается выход/выход я хочу проверить на это «textRunner», а вместо этого я получаю всю строку текста, как, например:

testRunner testing the runner 5 minutes No View Edit Enable 

EDIT Вот мой окончательный код:

var rows = element.all(by.repeater('alert in alerts')); 
rows.last().then(function(row) { 
    var rowElems = row.findElements(by.tagName('td')); 
    rowElems.then(function(cols){ 
     expect(cols[0].getText()).toContain('testRunner'); 
     expect(cols[1].getText()).toContain('testing the runner'); 
     expect(cols[4].getText()).toContain('5 minutes'); 
    }); 
}); 

ответ

2
var rows = element.all(by.repeater('alert in alerts')); 
rows.last().then(function(row) { 
    var rowElems = row.findElements(by.tagName('td')); 
    rowElems.then(function(cols){ 
     expect(cols[0].getText()).toContain('testRunner'); 
     expect(cols[1].getText()).toContain('testing the runner'); 
     expect(cols[4].getText()).toContain('5 minutes'); 
    }); 
}); 
0

Предполагая, что вы используете <table>, а ваши разные значения указаны в <td>, вы можете проверить значения с помощью by.tagName locator strategy.

var rows = element.all(by.repeater('alert in alerts')); 
var row = rows.last(); 
var rowElems = row. findElements(by.tagName('td')); 
expect(rowElems.get(0).getText()).toMatch('/testRunner/'); 
expect(rowElems.get(1).getText()).toMatch('/testing/'); 
expect(rowElems.get(2).getText()).toMatch('/the/'); 
expect(rowElems.get(3).getText()).toMatch('/runner/'); 
expect(rowElems.get(4).getText()).toMatch('/5/'); 
expect(rowElems.get(5).getText()).toMatch('/minutes/'); 
expect(rowElems.get(6).getText()).toMatch('/No/'); 
expect(rowElems.get(7).getText()).toMatch('/View/'); 
expect(rowElems.get(8).getText()).toMatch('/Edit/'); 
expect(rowElems.get(9).getText()).toMatch('/Enable/'); 
+0

Когда я использую свой код, я получаю правильные столбцы, но не правильный ряд, я только получить первый ряд не последний. Есть ли способ подсчета строк и использования этого? – Brian

+0

В моем коде была ошибка. Я использую элемент вместо вяза. Я изменяю имена переменных для ясности. – gontard

+0

Я получаю TypeError: Object [object Object] не имеет метода 'all' error – Brian

Смежные вопросы