赛普拉斯检查一个元素是否具有特定的文本值

时间:2020-09-15 06:46:51

标签: javascript reactjs cypress

我正在尝试设置我的第一个赛普拉斯测试,但找不到如何使用cy.get()命令获得的元素之一具有特定值。

也许我的方法不正确。这就是我想做的:

我有一个有两个日期的表格。提交表单后,后端还有一些其他验证。不能选择两个日期格式为同一日期(例如)。如果存在验证错误,我想在表格下方显示此错误。这将显示一个span元素(至少这是Material Ui的工作方式)。

现在通过测试,我想获取所有span元素,看看它们中是否有一条错误消息。

我该如何实现呢?

我尝试了cy.get('span').contains('Some error message'),但这似乎不起作用。

2 个答案:

答案 0 :(得分:1)

基于Cypress documentation,您可以尝试:

cy.get('span').should('have.text', 'Some error message')

答案 1 :(得分:0)

一种方法是使用each(),它将遍历所有span元素,然后您可以提取innerText并根据错误消息对其进行验证。

cy.get('span').each(($elm) => {
    cy.wrap($elm).invoke('text').then((text) => {
        if (text == "Error Message") {
            //Do Something
        }
        else {
            //Do Something
        }
    })
})
相关问题