代码之家  ›  专栏  ›  技术社区  ›  user3727540

Cypress-比较两个输入的相等性

  •  3
  • user3727540  · 技术社区  · 6 年前

    使用Cypress(刚刚开始),我找不到一种方法来维护两个输入框中文本的相等性,如图所示。使用案例是,当用户设置拾取位置时,默认情况下,相同的位置应显示在下拉框中。

    为了测试上述内容,我编写了以下代码:

      cy.get('input#dropFtsAutocomplete').should("have.value" , cy.get('input#ftsAutocomplete'));
    

    正确地说,Cypress抱怨以下错误:

    错误:AssertionError:应为 “”将具有 值{Object(chainerId,firstCall)},但值为“Manchester” 英国曼彻斯特机场

    我错过了什么?

    2 回复  |  直到 6 年前
        1
  •  5
  •   user3727540    6 年前

    为了实现这一点,只需遵循Cypress常见问题解答:

    cy.get('input#ftsAutocomplete').invoke('val').then(pickUpLocation => {
            cy.get('input#dropFtsAutocomplete').should('have.value', pickUpLocation)
        })
    
        2
  •  2
  •   Richard Matsen    6 年前

    我认为有几种方法可以做到这一点(选择多个元素并测试组合)。

    我一直在这样做

    cy.get('input#ftsAutocomplete').then(ftsElement => {
      cy.get('input#dropFtsAutocomplete').should('have.value', ftsElement.textContent.trim())
    })
    

    基本上,cypress命令是异步的,所以您可以用与promises类似的方式来处理它们。

    您可能需要修改获取文本值的确切语法。