网上有很多关于测试元素是否存在的信息,但我找不到任何对我的情况有帮助的具体内容。
就上下文而言,我正在开发一个包含某些元素(例如待办事项列表)的网站。 我想编写一个名为
editItem
的方法/函数,它在搜索栏中过滤 itemName
,然后单击过滤后的项目。
问题是,如果由于某种原因搜索栏中已经有某些内容,我无法使用函数
.clear()
来清除搜索栏中的文本。所以我尝试解决这个问题,现在我使用内置的“x”按钮来清除单击时的搜索栏。
这里的问题是我需要实现一个 if 条件来检查是否显示“x”按钮,但我不知道如何实现。
伪代码:
if (searchbar.exists) searchbar.click()
使用 https://github.com/bahmutov/cypress-if 这种测试变得非常简单。
按钮示例(取决于按钮是否隐藏或从 DOM 中删除)
cy.contains('button', 'x')
.if(':visible')
.click()
// or
cy.contains('button', 'x')
.if('exists')
.click()
不过
最好了解测试中页面的状态,否则最终可能会得到误报结果。
始终在
.if()
命令之前测试该命令,以确保它确实有效。
@wirbleWind 你有答案吗我也在寻找同样的appreoach