如果 Cypress 中存在某个元素,如何进行条件测试?

问题描述 投票:0回答:2

网上有很多关于测试元素是否存在的信息,但我找不到任何对我的情况有帮助的具体内容。

就上下文而言,我正在开发一个包含某些元素(例如待办事项列表)的网站。 我想编写一个名为

editItem
的方法/函数,它在搜索栏中过滤
itemName
,然后单击过滤后的项目。

问题是,如果由于某种原因搜索栏中已经有某些内容,我无法使用函数

.clear()
来清除搜索栏中的文本。所以我尝试解决这个问题,现在我使用内置的“x”按钮来清除单击时的搜索栏。

这里的问题是我需要实现一个 if 条件来检查是否显示“x”按钮,但我不知道如何实现。

伪代码:

if (searchbar.exists) searchbar.click()
conditional-statements cypress cypress-conditional-testing
2个回答
2
投票

使用 https://github.com/bahmutov/cypress-if 这种测试变得非常简单。

按钮示例(取决于按钮是否隐藏或从 DOM 中删除)

cy.contains('button', 'x')
  .if(':visible')
  .click()

// or

cy.contains('button', 'x')
  .if('exists')
  .click()

不过

最好了解测试中页面的状态,否则最终可能会得到误报结果。

始终在

.if()
命令之前测试该命令,以确保它确实有效。


0
投票

@wirbleWind 你有答案吗我也在寻找同样的appreoach

© www.soinside.com 2019 - 2024. All rights reserved.