<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
but I am unable to use code below to get each row and its column.
grid.each.each(function(row){
var rowElems = row.findElements(by.tagName('td'));
expect(rowElems.get(0).getText()).toMatch('/Col1/');
});
the following error message is displaying. Message: TypeError: Object [object Object] has no method 'findElements'
Your grid
setup is ok, but for the sake of a shortcut:
var grid = $$('.k-grid-content tr');
Regarding your question, avoid findElements
and use chaining element
or in this case all
Protractor feature. But I'll use $$
shortcut again:
grid.each(function(row) {
var rowElems = row.$$('td');
expect(rowElems.count()).toBe(3);
expect(rowElems.get(0).getText()).toMatch('/Col1$/');
});
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With