【问题标题】:I am using If/else condition on my code but i guess the the condition i am using for if/else is not proper我在我的代码上使用 If/else 条件,但我猜我用于 if/else 的条件不正确
【发布时间】:2020-08-07 10:52:08
【问题描述】:

我在我的代码中使用 If/else 条件,但我猜我用于 if/else 的条件不正确。需要帮助以获得可以在 cypress.io 中正确实现的正确条件。

解释-我需要一个条件来实现,比如-->当我将在我的过滤器搜索框中搜索任何文本(ex-july)时,如果该文本存在,它应该是可见的,但是当搜索到的文本(ex- july) 不存在,那么它会将文本显示为“无数据”。 所以为此我正在尝试实现 If/else 语句。

如果使用下面的条件--> 它将获取存在文本的元素,它应该是可见的,如果发生这种情况,则验证 text(july) 是否存在 else--> 将文本显示为“无数据”

为 if/else 编写的代码:-

显示 july(text) 的第一行的元素--> '.ant-table-row > .NameStyling'


namefilteredvalue(): this {

  if (cy.get('.ant-table-row > .NameStyling').should('be.visible')) {
    cy.contains("july")
  }

  else {
    cy.contains('No Data')
  }
  return this;
}

面临的问题:- 仅验证 if 语句是否会找到文本,它将显示文本,但当没有得到所需的文本时不会移动到 else 语句(可以显示其他文本(无数据))

使用 cypress.io。

【问题讨论】:

  • 测试应该每次都具有相同的预期条件。目前您即将进行即使没有返回数据也将通过的测试。我建议您编写一个测试来检查 july 是否返回,第二个检查是否返回不存在的数据 te no data

标签: javascript conditional-statements cypress


【解决方案1】:

虽然我同意 Jonah 指出的 if/else 语句不是一个好主意,但如果被测应用程序不一致并且可能会为用户提供多个选项,则有时您需要它们。有时,我们受制于应用程序的功能与最佳测试实践之间的关系。

也就是说,

cypress commands return cypress promises

所以当你输入

cy.get('').should('be.visible')

它不返回 true,它返回一个可链接的承诺

同样,与

if (cy.get('.ant-table-row > .NameStyling').should('be.visible'))

你真的在打字

if(<cypress promise>)

这永远是真的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-05
    • 2021-10-12
    • 2022-07-08
    • 1970-01-01
    • 1970-01-01
    • 2020-08-06
    相关资源
    最近更新 更多