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

Опитвам се да изпълня избран ред на моя E2E тест, така че да мога да видя дали един от бутоните ми работи, когато е избран ред. Моят тест стига до страницата, но когато се опитам да избераRow, ми дава грешка. В момента тестът изглежда така.

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