1

テーブルの内容をテストしようとしていますが、それを達成するためにすべての行と列をループする必要があります。私の現在のコードは次のとおりです。

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++;
            }
        })
    });

セルのコンテンツにアクセスしていますが、rows[i].all(....) 内でカウンターがインクリメントされるため、テストは失敗します。私の行の長さは予想どおり2であり、その期待は合格ですが、行[i].all(...)内でもカウンターがインクリメントされる理由はまだ混乱しています。私が得ているエラーは次のとおりです。

失敗: 未定義のプロパティ 'application' を読み取ることができません

これは、インデックス 2 でアプリケーションにアクセスしようとしていて、配列にその要素がないためです。

4

1 に答える 1