2015-03-18 2 views
1

Я пытаюсь проверить содержимое моей таблицы, и мне нужно пройти через все строки и столбцы, чтобы это сделать. Мой текущий код:Как перебирать столбцы строк в тесте e2e

it('test', function() { 
     var appRowLocator = by.repeater('appRow in model.getAppList()'); 

     browser.wait(function() { 
      return element(appRowLocator).isPresent(); 
     }, 1000); 

     var i = 0; 
     element.all(appRowLocator).then(function(rows){ 
      expect(rows.length).toBe(2); 
      while(i < 2){ 
       rows[i].all(by.tagName('td')).then(function(cols){ 
        expect(cols.length).toBe(8); 
         expect(cols[0].getText()).toBe(summary.applicationSummaries[i].application.name); 
         expect(cols[2].getText()).toBe(""); 
       }); 
       i++; 
      } 
     }) 
    }); 

Я доступ к содержимому клеток, но тест по-прежнему не удается, потому что счетчик увеличивается внутри строки [я] .all (....). Длина моих строк равна двум, как ожидается, и это ожидание проходит, но я все еще запутался, почему счетчик увеличивается и внутри строк [i] .all (...). Ошибка я получаю:

Ошибка: Не удается прочитать свойство «приложения» неопределенной

И это потому, что он не пытается получить доступ к применению с индексом 2, и нет этого элемента в массиве ,

ответ

1

Здесь не нужно then(). Используйте get() и пусть expect() разрешать обещания для вас:

var cells = rows[i].all(by.tagName('td')); 

expect(cells.count()).toEqual(8); 
expect(cells.get(0).getText()).toBe(summary.applicationSummaries[i].application.name); 
expect(cols.get(2).getText()).toBe(""); 
+0

да, но тогда я получаю Failed: Не удается вызвать метод «GetText» неопределенной – Sanja

+0

element.all (appRowLocator) .Затем (функция (строки) { ожидать (rows.length) .toBe (2); для (var i = 0; i Sanja

+0

@ Sanja все еще не работает? – alecxe

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