javascript - Cypress ,如何遍历元素?

标签 javascript e2e-testing cypress

cy.get('div.infoTextCarousel').find('a.ProductInfoAnchor').should('have.attr', 'href', url)

有许多 div 具有相同的名称“div.infoTextCarousel”,每个 div 中都有“a.ProductInfoAnchor”,其中一个包含匹配的 href。所以我想要的是 cypress 一直在寻找匹配的 href 直到找到它,但问题是它只检查第一个 'div.infoTextCarousel' 和 'a.ProductInfoAnchor' 当它找不到匹配的 href 时它失败了。

最佳答案

如果您需要一些更复杂的行为,您可以将回调函数传递给 should()。在下面的代码中,我正在提取 href 属性,并期望属性列表包含特定的 url:

const url = '/something'
cy.get('div.infoTextCarousel')
 .find('a')
 .should($a => {
     let hrefs = $a.map((i, el) => {
      return Cypress.$(el).attr('href')})

      expect(hrefs.get()).to.contain(url)
  })

希望这对您有所帮助。

关于javascript - Cypress ,如何遍历元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57072786/

相关文章:

jquery - 如何编写用 Protractor 单击下拉菜单中的选项的测试?

sql-server - Testcafe - 如何在所有装置运行后运行代码

scroll - Cypress 滚动获取一个元素

javascript - 通过纵向/横向 View 显示不同的数据

javascript - 密码验证协助

javascript - ReactJS 与 NodeJS - 为什么我需要创建两者?

javascript - 如何在 Cypress.io 中拖放

testing - Cypress 没有捕捉到 XHR 请求

reactjs - 如何在 Cypress 中测试 React Material UI Drawer 组件属性值

javascript - 如何在 keydown 事件上使用 id-name?