我想在我的登录测试中添加一个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')
})
})
})
答案 0 :(得分:0)
您可以使用每个函数迭代项目,然后检查文本内容。通过使用cy.wrap包装元素,你可以使用de normal 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
}
})
})