Пара вещей с вашим кодом,
cy.get()
не возвращает логическое значение для if()
для проверки, поэтому вы не можете использовать его там.
cy.get()
не проходит тест, если селектор не найден, поэтому, если экран spla sh отсутствует, последняя строка не будет выполнена.
Один из способов проверить работоспособность селектора без сбоев - использовать JQuery, который предоставляется для глобального Cypress.$()
.
Вот пример теста для иллюстрации,
HTML
<div class="maybe"></div>
<div class="anotherDiv"></div>
Spe c
before(() => {
cy.visit('/app/conditional-execution.html')
})
it('conditional execution - element found', () => {
cy.get('div.maybe') // fails test and stops here if not found
const $element = Cypress.$('div.maybe') // non-failing check, returns JQuery object
const exists = !!$element.length; // convert JQuery object to a boolean
console.log('Element found?', exists);
if (exists) {
// Conditional commands
}
// Commands to execute if found or not
cy.get('div.anotherDiv')
})
it('conditional execution - element not found', () => {
const $element = Cypress.$('div.maybeNot') // non-failing check, returns JQuery object
const exists = !!$element.length; // convert JQuery object to a boolean
console.log('Element found?', exists);
if (exists) {
// Conditional commands
}
// Commands to execute if found or not
cy.get('div.anotherDiv')
})
Это будет ваш синтаксис
if(Cypress.$('#center-tile-banner-popup').length) {
cy.get('[title="Accept Cookies"]').click();
}