我刚刚开始使用赛普拉斯进行测试自动化,以查看是否喜欢它,但是遇到一个小问题。我想根据同一行中另一个单元格中的值来声明单元格的内容。在下面的示例中,第一行包含一个已完成注册的用户,所有单元格均已填充。在第二行上,可以看到一个尚未由用户完成的新帐户。名字和姓氏等单元格仍为空。显示:- 现在,我要验证第三列中包含“ usermanagementtest@test.com”的行的第一个单元格是否包含“-”。我没有办法知道将在哪一行显示。
我首先声明有一个包含给定电子邮件地址的可见单元格:
cy.get('.module-user--list tr').find('td').contains('usermanagementtest@lukkien.com').should('be.visible')
但是现在我想声明同一行中第一列的值。
<tbody>
<tr>
<td>John</td>
<td>Doe</td>
<td>j.doe@test.com</td>
<td>0321654987</td>
</tr>
<tr>
<td>-</td>
<td>-</td>
<td>usermanagementtest@test.com</td>
<td>-</td>
</tr>
</tbody>
答案 0 :(得分:2)
在同事的帮助下,我通过以下方式实现了这一目标:
cy.get('.module-user--list tr').find('td').contains('usermanagementtest@test.com').prev().prev().should('contain', '-')
另一种方法是获取父元素并从那里找到方法:
cy.get('.module-user--list tr').find('td').contains('usermanagementtest@test.com').parent().as('row')
cy.get('@row').find('td:nth-child(1)').should('contain', 'foo')