首页 > 解决方案 > 如何在 Cypress 中正确使用 .wrap()

问题描述

我正在使用赛普拉斯 3.3.1

作为其他人可以测试的示例,请考虑以下代码:

  cy.visit('https://google.com')

  cy.get('input[type=text]').each((el, index) => {
    if (index === 0) {
      cy.wrap(el).type('some text')
    }
  })

  cy.contains('Google Search').click()

由于某种原因cy.contains('Google Search').click()无法找到该元素。

如果我在打电话cy.wrap('body')之前打电话.contains('Google Search'),那现在可以了。建议如果你包装一个元素,它会改变一些全局上下文,然后必须重置。据我所知,文档中没有提到这一点。

此代码有效:

  cy.visit('https://google.com')

  cy.get('input[type=text]').each((el, index) => {
    if (index === 0) {
      cy.wrap(el).type('some text')
    }
  })

  cy.wrap('body')

  cy.contains('Google Search').click()

你应该在使用后“重置”上下文wrap()还是我误解了它应该如何使用?

标签: cypress

解决方案


推荐阅读