【问题标题】:OR operator in Cypress.ioCypress.io 中的 OR 运算符
【发布时间】:2019-10-21 14:59:12
【问题描述】:

如果页面结果为“未找到匹配记录”或“无可用数据”,我无法建立测试成功的条件。 赛普拉斯中有“或”运算符吗? (文档中没有)

我尝试使用nodejs来做逻辑,但是cypress在第一个条件下抛出错误。

        if (cy.get('.v-table__overflow > table > tbody > tr > td').contains('No matching records found') || cy.get('.v-table__overflow > table > tbody > tr > td').contains('No data available')) {
          cy.log('Record does not exist as Expected!');
        } else {
          cy.pause();
        }

【问题讨论】:

  • 不知道您的 HTML 是什么样子,但是您为表格中的每个单元格编写了一个选择器并检查它是否与静态值匹配是否有意义?
  • 是同一个单元格,可以是“未找到匹配记录”或“记录不存在预期!”

标签: node.js cypress


【解决方案1】:

您的赛普拉斯代码完全不正确。请我建议你检查一下assertations 在 Cypress 中是如何工作的。

更新: 你可以这样做:

cy.get('.v-table__overflow > table > tbody > tr > td').shold('have.not.text', 'No matching records found').and('have.not.text', 'No data available');

cy.get('.v-table__overflow > table > tbody > tr > td').invoke('text').then((text) => {
  expect(text).not.equal('No matching records found')
  expect(text).not.equal('No data available')

})

另外,我看到您正在检查未显示特定消息。相反,请考虑检查是否显示了某些元素。这样测试会更清晰。

【讨论】:

  • 您好,谢谢您的回答,您能详细说明一下吗?我已经通过了断言文档,但是如果您有 OR 案例,还没有找到确认测试的方法。意味着您可以在同一页面上显示例如“TEXT1”或“SOMETHING2”作为结果。
  • 谢谢。你的回答很有帮助。
猜你喜欢
  • 2015-07-08
  • 2010-10-23
  • 2016-07-08
  • 2018-04-17
  • 1970-01-01
  • 2020-10-04
  • 2016-05-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多