#cypress
#cypress
Вопрос:
Я пытаюсь выполнить условный оператор в cypress, чтобы проверить, является ли ссылка для входа в заголовке входом, учетной записью или классом, а затем щелкнуть по ней.
Условие if не работает.
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()
}
})
Я ожидаю, что если вход найден, то он нажмет else, если учетная запись доступна, то он нажмет else, который будет проверен классом.
[всегда выполняется последнее условие else][1] [1]: https://i.stack.imgur.com/liEF9.png
[есть текст учетной записи, и все еще в нем применено последнее условие else][2] [2]: https://i.stack.imgur.com/sXYr8.png
Другая структура кода, и теперь в нем всегда применяется первое условие, несмотря ни на что
Комментарии:
1. Что происходит, чего вы не ожидаете? и читали ли вы документы по условному тестированию? on.cypress.io/conditional-testing#Element-existence
2. я не понял, что вы подразумеваете под «Что происходит, чего вы не ожидаете»? И Да, я действительно прошел через документ об условном тестировании
3. Вы получаете сообщение об ошибке? Что не работает с предоставленным вами кодом?
4. Следующее, если X, то Y, иначе, если A, то B, иначе Z мое условие — A, и оно должно выполняться B, но независимо от того, какое условие оно всегда выполняет Z
5. @ZachBloomquist я добавил несколько снимков экрана и даже изменил код. спасибо, что уделили время, чтобы помочь мне
Ответ №1:
Следующий код сработал для меня.
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})
}
})
Спасибо за помощь,
Ответ №2:
cy.get ('button'). then ($button) => {
if ($button.text()). includes ("Import project')){
cy.contains ('Import project'). click () wait (2000);
}
else
{
cy.contains('Replace existing project').click({force:true})
cy.get('.bp3-intent-danger').click();
}
})
I am trying in same way but it's not working for me