如何在每个循环内的赛普拉斯中执行条件测试

时间:2020-10-12 15:53:50

标签: javascript if-statement automated-tests find cypress

我有一个动态表,其中某些行可以处于活动状态,也可以不处于活动状态,因此我只需要单击可用的行。即使我仅单击可用的行,我仍然会收到错误,因此我还必须断言,不会显示任何错误消息。 简而言之,我必须遍历表行并找到一个不会触发任何错误的行,然后继续进行下一个测试步骤。 我按照赛普拉斯文档中的建议进行了尝试,但是我无法打破在then()块内返回​​“ false”的每个循环

        cy.get('#table')
            .find('tr').each(($tr) => {
                if ($tr.attr('class') != 'not-avail') {
                    cy.get($tr).click()
                    cy.get('.blocker > .q-spinner').should('not.be.visible')

                    return cy.get('body').then(($body) => {
                        if (!$body.find('#error').length) {
                            return false
                        }
                    })
                }
            })

我也尝试了这种变体,但是当没有错误消息显示时,它未能通过测试

        cy.get('#table')
            .find('tr').each(($tr) => {
                if ($tr.attr('class') != 'not-avail') {
                    cy.get($tr).click()
                    cy.get('.blocker > .q-spinner').should('not.be.visible')

                    const $body = cy.get('body')
                    if (!$body.find('#error').length) {
                        return false
                    }
                }
            })

0 个答案:

没有答案