Тестирование транспортира UI-Grid 3.0 E2E

Я пытаюсь выполнить выбор строки в своем тесте E2E, чтобы увидеть, работает ли одна из моих кнопок при выборе строки. Мой тест попадает на страницу, но когда я пытаюсь выбрать строку, он выдает ошибку. В настоящее время тест выглядит так.

var GridTestUtils = require('./gridTestUtils.spec.js');

describe('Tests', function() {
    it('should switch to clients and add a client', function() {
        expect(element(by.id('table')).isPresent()).toBe(true);
        expect(element(by.id('sideNavLink')).getAttribute('class')).toEqual('active');
        GridTestUtils.expectRowCount('table', 2);
        element(by.id('addSubNavLink')).click();
        expect(element(by.model('modalData.name')).isPresent()).toBe(true);
        element(by.model('modalData.name')).sendKeys('Protractor Test Client');
        element(by.id('clientSubmit')).click();
        //GridTestUtils.expectRowCount('table', 3);
        GridTestUtils.selectRow('table', 3);
        element(by.id('deleteButton')).click();
    });
});

Когда я запускаю транспортир, я получаю эту ошибку:

Message:
 NoSuchElementError: No element found using locator: by.repeater((rowRenderIndex, row) in rowContainer.renderedRows track by $index").row("3")"

Если есть другой способ выделить строку, я его еще не нашел, но я просматривал gridTestUtils.spec.js, и это был первый, который я нашел.


person Wes    schedule 13.07.2015    source источник


Ответы (1)


Строки и столбцы сетки используют индекс с отсчетом от нуля.

Это не задокументировано напрямую, но очевидно, когда вы сравниваете свою ошибку с реализацией в gridTestUtils.spec.js, параметр строки передается в repeater.row() локатор, который, как в примерах, основан на нуле.

Итак, если ваша сетка имеет 3 строки

GridTestUtils.expectRowCount('table', 3);

вы можете выбрать последнюю строку с помощью

GridTestUtils.selectRow('table', 2);

person voyta    schedule 30.11.2017