0 row count emptydatatext cypress
请帮助我找到一种方法来仅计算非空表行。我尝试使用它:
cy.get("#TableId")
.find("tr")
.then((rows) => {
rows.toArray().forEach((element) => {
if (element.innerHTML.should('be.not.empty')) {
//rows.index(element) will give you the row index
cy.log(rows.index(element));
}
});
});
Run Code Online (Sandbox Code Playgroud)
但它会抛出一个错误
这取决于您的目标。
这里有一个使用多种表达方式的实验,您可以选择适合您要求的一种。
不要忘记添加tbody到表选择器,因为您想要排除标题行。
测试 HTML
<table>
<tbody>
<tr>
<td></td>
<td></td>
</tr>
<tr>
<td><span></span></td>
<td></td>
</tr>
<tr>
<td>some-text</td>
<td></td>
</tr>
<tr>
<td>some-text</td>
<td>another-text</td>
</tr>
</tbody>
</table>
Run Code Online (Sandbox Code Playgroud)
测试代码
cy.get('table tbody tr')
.each((tr, index) => {
console.group('row', index, tr.html().replaceAll('\n', ''))
const expressions = [
"tr.html()",
"tr[0].innerHTML",
"tr.find('td').toArray().map(td => td.innerHTML).join('')",
"tr.text()",
"tr.text().trim().replaceAll('\\n', '')",
]
const results = expressions.reduce((acc,e) => {
acc[e] = eval(e)
return acc
}, {})
console.table(results)
console.groupEnd()
})
Run Code Online (Sandbox Code Playgroud)
输出
| 归档时间: |
|
| 查看次数: |
294 次 |
| 最近记录: |