首页 > 解决方案 > 赛普拉斯测试项目清单。没有收到任何物品时出错?

问题描述

我想知道这种情况:

我有一个记录列表,列出项目,我想对这些项目做点什么。问题是,我相信当我查询项目时,有时我可能有零个项目,而其他时候我不会。

当我没有任何项目时,cy.get 或 cy.get(..).find(..) 将超时并且测试将失败,但我不希望它失败,但继续。

我试图将 cy.get/cy.get.find 与每个链接在一起,但我认为这是不可能的。

标签: e2e-testingcypressangular-e2e

解决方案


您需要的是if代码中的一个。在测试中设置条件不是最佳做法,但有时这是最好的。

要使用 if 子句,您可以使用以下语法:

cy.get('body').then($body => {
  if ($body.find('<ELEMENT_YOUR_LOOKING_FOR').length === 1) {
    // action you want to perform on the list
  }
})

这样,如果没有找到元素,测试就不会失败,它会简单地不执行if. 但是如果找到了元素,就会执行动作。


推荐阅读