cypress - 赛普拉斯事件后如何检查dom上是否存在元素?
问题描述
我读过这篇关于条件测试的文章,但还是不明白。 https://docs.cypress.io/guides/core-concepts/conditional-testing.html#Error-Recovery
我有这种情况,当我在输入中输入一个值然后提交它时,有时,根据我输入的值,它会显示/呈现 DOM 上的另一个元素。
所以我需要做类似的事情:
“在一个事件之后(例如提交输入的值),检查dom上是否有某个元素,然后做一些事情,否则做其他事情”
从我在 cypresss 文档中读到的内容,他们一直说 dom 应该始终相同,根据我们在输入中输入的值出现的元素应该已经存在。
但事实并非如此,这是现代网站的正常行为。
我怎样才能做到这一点?否则,当我尝试“获取”元素时,如果它不存在,它就会崩溃。
人们通常如何管理这个?
解决方案
我建议将它链接在始终呈现的 DOM 树中的上层元素上,例如:
cy.get('.app__inner').then($app => {
if ($app.find('.your_element').is(':visible')) {
// fill the logic here
} else {
// fill the logic here
}
});
推荐阅读
- php - Laravel 新星 - 404
- azure - Azure 机器学习:从 YAML 创建 ML 管道失败:TabularDataset 不支持挂载。只有 FileDataset 支持挂载
- python - 如何创建可拖动的绘图对象
- azure - 如何使用 terraform 创建 Azure WebJob?
- html - 角度 - 与角度材料进度条不一致的倒计时
- javascript - 构建 HTML 表单时的单选按钮选择
- mongodb - 如何使用 QueryDSL 和 Morphia 在 MongoDB 4.0 中使用事务?
- python - Python / google电子表格 - 如何删除['']或获取除第一列之外的所有列
- python - 根据字符位置将列值拆分为其他列
- batch-file - return 如何在递归批处理函数中工作