我希望能够单击复选框,并测试元素不再在Cypress的DOM中。有人能建议你怎么做吗?
// This is the Test when the checkbox 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。
被投票的元素是正确的,但我强烈建议不要使用反模式,这样可以省去很多麻烦。为什么?是的,因为;
您的应用程序可以使用动态类或变化的ID
选择器将CSS样式或JS行为从开发更改中分离出来
幸运的是,可以避免这两个问题。
不要基于CSS属性(如:id, class, tag)来定位元素
不要针对那些可能改变文本内容的元素
添加data-*属性,使目标元素更容易
例子:
<button id="main" name="submission" role="button" data-cy="submit">Submit</button>
如果你想要更具体,想要标识多个选择器,使用.shouldchainer总是很好的。
例子:
cy.get("ul").should(($li) => {
expect($li).to.be.visible
expect($li).to.contain("[data-cy=attribute-name]")
expect($li).to.not.contain("text or another selector")
})