2

我正在尝试通过量角器获取 ng-repeat(ed) 表的最后一行来测试并确保我刚刚在之前的测试运行中创建的对象出现。我已经获得了该行的所有文本,但似乎无法通过反复试验弄清楚如何将最后一行的每一列作为数组的一部分,所以我可以验证每一部分,然后在最后一列我有按钮可以单击,这将是下一步。

我到目前为止的代码是:

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

编辑 这是我的最终代码:

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');
    });
});
4

2 回答 2

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');
    });
});
于 2014-01-30T16:03:29.843 回答
0

假设您正在使用 a <table>,并且您的不同值在其中<td>,您可以使用by.tagName定位器策略检查值。

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/');
于 2014-01-30T09:51:09.077 回答