Cypress: проверьте, нет ли элемента

Я хочу иметь возможность щелкнуть флажок и проверить, что элемент больше не находится в DOM в Cypress. Может ли кто-нибудь предложить, как вы это делаете?

//This is the Test when the check box is clicked and the element is there
cy.get('[type="checkbox"]').click();
cy.get('.check-box-sub-text').contains('Some text in this div.')

Я хочу сделать противоположное вышеприведенному тесту. Поэтому, когда я снова нажимаю на него, div с классом не должен находиться в DOM.

Ответы

Ответ 1

Ну, похоже, это работает, поэтому он говорит мне, что мне нужно еще кое-что узнать о.should()

cy.get('.check-box-sub-text').should('not.exist');

Ответ 2

cy.get(data-e2e="create-entity-field-relation-contact-name").should('not.exist')

может привести к ложным результатам, так как некоторые сообщения об ошибках будут скрыты. Может быть лучше использовать

.should('not.visible') 

в таком случае.

Ответ 3

Вот что у меня сработало:

cy.get('[data-cy=parent]').should('not.have.descendants', 'img')

Я проверяю, что у некоторых <div data-cy="parent"> нет изображений внутри. Относительно исходного вопроса, вы можете установить атрибут data-cy="something, ie child" на внутренних узлах и использовать это утверждение:

cy.get('[data-cy=parent]').should('not.have.descendants', '[data-cy=child]')