Cypress Conditional Test, оператор else не выполняется, не проходит тест - PullRequest
0 голосов
/ 18 июня 2020

Нужна помощь по условному тестированию Cypress, поскольку оператор else не выполняется. У меня есть сценарий, в котором, если один или несколько дочерних элементов доступны в родительском элементе, закрыть все дочерние элементы, если дочерний элемент не завершен / пропущен командой Parent #: Родительский дочерний элемент: весь дочерний элемент имеет class = "child-class-in-scope" мой код следующим образом, тест не выполняется, когда оператор if возвращает false, скорее я ожидаю go для условия else, какую ошибку я здесь делаю, тоже пробовал использовать некоторые счетчики

var count 
 if(cy.get(parent).should('have.descendants', '[class="child-class-in-scope"]'))
    {
        cy.log("There are child element available");
        count = 1            
    })
else{
      cy.log ("NO CHild element")
      count= 0
}
if count = 1 {
    cy.get(child_element)
    .each(function($el, i){
    cy.log($el, i)
    cy.wrap($el).click() 
    })
}
else
{
cy.log ("NO Child element, skip step")
}

1 Ответ

0 голосов
/ 19 июня 2020

Ваш тест будет успешным, только если указанное условие истинно, в противном случае он не состоится. .should('have.descendants') утверждает, что полученный объект cy.get(parent) имеет потомков и ожидает подтверждения. Поэтому я бы посоветовал:

let count;
cy.get(parent).then($el => {
    if ($el.find('.child-class-in-scope')) {
        count = 1;
    } else {
        cy.log ("No ascendant elements found")
        count = 0
    }

    if (count === 1) {


     // closing child elements logic here


    } else {
        cy.log ("NO Child element, skip step")
    }
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...