使用Cypress根据同一行中单元格的内容来声明单元格的内容

时间:2018-08-17 13:46:16

标签: html-table cypress

我刚刚开始使用赛普拉斯进行测试自动化,以查看是否喜欢它,但是遇到一个小问题。我想根据同一行中另一个单元格中的值来声明单元格的内容。在下面的示例中,第一行包含一个已完成注册的用户,所有单元格均已填充。在第二行上,可以看到一个尚未由用户完成的新帐户。名字和姓氏等单元格仍为空。显示:- 现在,我要验证第三列中包含“ 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>

1 个答案:

答案 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')