Reputation: 673
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
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