如何解决赛普拉斯Cypress:如何测试由于覆盖而导致内容不可访问可点击等?
我已经在Angular中实现了一个加载指示器,如下所示:
<div cdkTrapFocus class="activity-indicator-container">
<div class="content-container">
<ng-content></ng-content>
<div [ngStyle]="{visibility: showLoader ? 'visible': 'hidden'}" class="indicator-overlay">
<div class="loading-indicator">
</div>
</div>
</div>
</div>
indicator-overlay
的样式如下:
.indicator-overlay {
position: absolute;
left: 0;
right: 0;
top: 0;
bottom: 0;
background-color: rgba(255,255,0.35);
}
显示指示符时,内容将由半透明的div变灰。
显示叠加层时,运行cy.contains('text in content').should('not.be.visible')
失败。
那么在Cypress中有没有一种方法可以测试文本实际上是无法访问(可选择,可点击等)?
解决方法
您可以使用try / catch块。听起来您正在测试覆盖层是否会捕获任何点击事件,而不是正在测试元素不可点击(因为您没有更改元素本身)
您可以这样做
displayLoadingOverlay();
try{
// this should fail,since the overlay will be blocking it
element.click();
} catch(error){
expect(error).to.contain(message);
}
该测试可确保如果您尝试单击该元素(重复任意数量的元素),则由于Cypress无法单击该元素,因此将引发错误。如果未引发任何错误,则可以假定click事件起作用。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。