Sam
Sam

Reputation: 673

Conditional statement in cypress

I am trying to do a conditional statement on cypress to check if the login link in the header is Sign in or Account or a class and then click on it.

The if condition is not working.

cy.get('header').then((header) => { 

if (header.find('Sign in').length > 0) { 
    cy.contains('Sign In')
    .click({force:true})  

} else if (header.find('Account').length > 0) {
    cy.contains('Account')
    .click()

} else {
    cy.get('.navUser-item--account .navUser-action').click()

}
})

I expect if Sign in found then it will click else if the Account is available then it will click else it will check by the class.

always doing the last else condition

there is Account text and still it applied the last else condition

Another code structure and now it always apply the first condition no matter what

Upvotes: 4

Views: 12523

Answers (1)

Sam
Sam

Reputation: 673

The following code worked for me.

cy.get('header').then(($a) => { 
        if ($a.text().includes('Account')) {
            cy.contains('Account')
            .click({force:true})
        } else if ($a.text().includes('Sign')) { 
            cy.contains('Sign In')
            .click({force:true})  
        } else {
            cy.get('.navUser-item--account .navUser-action').click({force:true})
        }
    })

Upvotes: 6

Related Questions