【问题标题】:Creating an if statement in cypress test scenario在 cypress 测试场景中创建 if 语句
【发布时间】:2018-05-22 08:16:43
【问题描述】:

我很想在我的登录测试中添加一条 if 语句,因为可以加载两个登录页面。下面的测试在找不到文本“不是您的帐户?”时失败,此时它应该继续登录步骤。我认为这是因为两个登录页面具有相同的元素“a.auth0-lock-alternative-link”但包含不同的文本。

如何在测试中创建 if 语句来满足这两种情况?

describe('My Login Test2', function (){
it('Visit Risk App Landing Page', function (){
cy.visit('https://bvt-riskassessment.lmkcloud.net')
cy.get('button').click()
if(cy.get('a.auth0-lock-alternative-link').contains('Not your account?'))
{
cy.get('a.auth0-lock-alternative-link').contains('Not your account?').click();
}
cy.fixture('loginUser').as('myUserFixture');
cy.get('@myUserFixture').then(user => {
cy.get('input.auth0-lock-input').first().type(user.email);
cy.get('input.auth0-lock-input').last().type(user.password);
cy.get('button').click()
cy.url().should('eq','https://bvt-riskassessment.lmkcloud.net/workflow')
})
})
})

【问题讨论】:

    标签: if-statement testing cypress


    【解决方案1】:

    您可以使用 each 函数来迭代项目,然后检查那里的文本内容。通过使用 cy.wrap 包装元素,您可以使用正常的 cypress 函数。

    更多信息:https://docs.cypress.io/api/commands/each.html#DOM-Elements

     cy.get('a.auth0-lock-alternative-link')
        .each(($elm) => {
          cy.wrap($elm).invoke('text').then((text) => {
            if (text === "Not your account?") {
              // do somthing
            } 
          })
        })
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-15
      • 1970-01-01
      相关资源
      最近更新 更多