javascript - Protractor : Read Table contents

标签 javascript testing protractor end-to-end

我一直在为我的 angular js 应用程序编写端到端测试,但我无法解决这个问题。我有一张包含数据的表格。我想提取第一行数据。

<table>
    <tr>
        <td><\td>
        <td><\td>
        <td><\td>
    </tr>
</table>

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

element.all(by.repeater('item in items.list')).get(0).getText()
James
Byrne
1

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

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

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

最佳答案

使用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();
});

然后,您可以断言它是一个列文本数组:

expect(cellTexts).toEqual(["The first text", "The second text", "The third text"]);

关于javascript - Protractor : Read Table contents,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29501976/

相关文章:

javascript - 无法在动态创建的输入 id 上获取ElementById

javascript - ComponentDidMount 之外的状态似乎没有更新

android - Selendroid 不会启动某些应用程序

python - SAWarning 测试失败

javascript - Moment.JS - 从周数获取日期

javascript - 为什么状态对象存在于 React 中?

unit-testing - 如何检验多参数公式

javascript - JS 未定义的 promise

angularjs - 通过 gulp 启动 Protractor

javascript - 如何识别 Protractor 中没有明显可识别属性的页面元素