量角器:阅读表格内容

JDu*_*unn 6 javascript testing end-to-end protractor

我一直在为我的角度js应用程序编写e2e测试,我无法弄清楚这一点.我有一张包含数据的表格.我想提取第一行数据.

<table>
    <tr>
        <td><\td>
        <td><\td>
        <td><\td>
    </tr>
</table>
Run Code Online (Sandbox Code Playgroud)

我在量角器中做了这个,elementExplorer它打印出所有3列的值

element.all(by.repeater('item in items.list')).get(0).getText()
James
Byrne
1
Run Code Online (Sandbox Code Playgroud)

如果我这样做,它会打印出第一列值

element.all(by.repeater('item in items.list')).get(0).element(by.css('td')).getText()
WARNING - more than one element found for locator By.cssSelector("td") - the first result will be used
James
Run Code Online (Sandbox Code Playgroud)

我的问题是,如何获取其他列的值?

ale*_*cxe 9

使用all()会同map():

var row = element.all(by.repeater('item in items.list')).first();
var cells = row.all(by.tagName('td'));

var cellTexts = cells.map(function (elm) {
    return elm.getText();
});
Run Code Online (Sandbox Code Playgroud)

然后,您可以将其断言为列文本数组:

expect(cellTexts).toEqual(["The first text", "The second text", "The third text"]);
Run Code Online (Sandbox Code Playgroud)


Abb*_*ALI 7

最简单的方法如下:

var tabledata = element.all(by.css("./table"));

// get rows 
var rows = tabledata.all(by.tagName("tr"));

// get cell values
var cells = rows.all(by.tagName("td"));

expect(cells.get(0).getText()).toEqual("something")
expect(cells.get(1).getText()).toEqual("something")
expect(cells.get(2).getText()).toEqual("something")
Run Code Online (Sandbox Code Playgroud)

我实现了它,它对我有用.