如何从带有Protractor的表中获取行及其列

时间:2014-10-01 07:45:22

标签: protractor

<div class="k-grid-content">
    <table>
        <tbody>
            <tr>
                <td>row1Col1</td>
                <td>row1Col2</td>
                <td>row1Col3</td>
            </tr>

            <tr>
                <td>row2Col1</td>
                <td>row3Col2</td>
                <td>row4Col3</td>
            </tr>

            <tr>
                <td>row3Col1</td>
                <td>row3Col2</td>
                <td>row3Col3</td>
            </tr>

        </tbody>
    </table>
</div>


var grid = element.all(by.css('.k-grid-content tr')); //this will return row1,row2,row3

但我无法使用下面的代码获取每一行及其列。

grid.each.each(function(row){
    var rowElems = row.findElements(by.tagName('td'));
    expect(rowElems.get(0).getText()).toMatch('/Col1/');
});

显示以下错误消息。  信息:      TypeError:Object [object Object]没有方法&#39; findElements&#39;

1 个答案:

答案 0 :(得分:12)

您的grid设置正常,但为了快捷方式:

var grid = $$('.k-grid-content tr');

关于您的问题,请避免findElements并使用链接element或本例all量角器功能。但我会再次使用$$快捷方式:

grid.each(function(row) {
  var rowElems = row.$$('td');
  expect(rowElems.count()).toBe(3);
  expect(rowElems.get(0).getText()).toMatch('/Col1$/');
});