使用量角器进行AngularJS e2e测试

时间:2014-01-29 22:08:49

标签: angularjs angularjs-ng-repeat protractor angularjs-e2e

我正在尝试通过量角器获取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');
    });
});

2 个答案:

答案 0 :(得分: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');
    });
});

答案 1 :(得分:0)

假设您使用的是<table>,并且您的不同值位于<td>,则可以使用by.tagName locator strategy检查值。

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/');