arrays - Cypress 断言是数组中的元素

标签 arrays cypress assert

有人可以协助完成以下工作: 简短说明:打开一页,获取文本元素,然后打开第二页,在 4 或 5 个元素中找到,需要断言第一页的元素在这几个元素的创建数组中。写了这段代码:

Cypress.Commands.add(
'assertForOpenedElementVisible',
 (list1, list2, notDisplayedElementMsg) => {
const textsArray = []
cy.get('body').then((body) => {
  if (body.find(list1).length > 0) {
    cy.get(list1).each(($el, index) => {
      const text1 = $el.text().replace(', ', '')

      cy.get(list1).eq(index).click()
      cy.wait(1000)

      cy.get(list2)
        .each(($el, index) => {
          const text = $el.text().replace(', ', '')
          textsArray.push(text)
          cy.log(textsArray)
          cy.log(text)
        })
        .then(() => {
          cy.wrap(expect(textsArray).to.include(text1))
        })
    })
  } else {
    cy.log(notDisplayedElementMsg)
  }
 })
 }
)

当检查测试运行程序时 - 我得到了元素,但测试失败了:

enter image description here

如何正确断言?提前谢谢你

最佳答案

你可以做这样的断言:

expect(text1).to.be.oneOf(textsArray)

或者,您可以不使用 each() 直接断言,例如:

cy.get(list2).should(($list2) => {
  expect($list2.eq(3)).to.contain('49') //If you know the position
})

cy.get(list2)
  .invoke('text')
  .then((text) => {
    expect(text).to.contain('49') //If you don't know the position
  })

关于arrays - Cypress 断言是数组中的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69221913/

相关文章:

typescript - cy.lighthouse 和 cy.pa11y 在 .spec.ts 或 .ts 等文件中不起作用

r - R 是否有像 python 中那样的断言语句?

c++ - 程序终止于大数组的初始化

c# - 继承自 Array 类

javascript - (let { items } = user) 与 (user.items) 严格相同吗?

javascript - 过滤日期数组

cypress - 如何在 Cypress 的所有测试套件之前执行代码?

cypress - 单击后如何在cypress中等待页面完成重新加载?

c++ - 重新定义断言是邪恶的吗?

unit-testing - EXPECT_CALL 的反义词是什么?