【问题标题】:Cypress - Compare equality of two inputs赛普拉斯 - 比较两个输入的相等性
【发布时间】:2018-02-21 16:20:41
【问题描述】:

使用赛普拉斯(刚刚开始),我找不到一种方法来断言两个输入框中的文本相等,如图所示。用例是,当用户设置取货地点时,默认情况下,相同的地点应出现在投递箱中。

为了测试上面的内容,我写了这段代码:

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

正确地,赛普拉斯抱怨以下错误:

错误:AssertionError:预期 '' 具有 value { Object (chainerId, firstCall) },但值为 'Manchester 机场 (MAN),曼彻斯特,英国'

我错过了什么?

【问题讨论】:

    标签: javascript jquery testing chai cypress


    【解决方案1】:

    为了实现这一点,只需遵循赛普拉斯常见问题解答:

    cy.get('input#ftsAutocomplete').invoke('val').then(pickUpLocation => {
            cy.get('input#dropFtsAutocomplete').should('have.value', pickUpLocation)
        })
    

    【讨论】:

      【解决方案2】:

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

      我一直这样做的方式类似于

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

      从本质上讲,cypress 命令是异步的,因此您可以以类似于 promise 的方式处理它们。

      您可能不得不摆弄获取文本值的确切语法。

      【讨论】:

      • 非常感谢@Richard
      • 但是,它不起作用,因为我收到错误:.trim() 未定义。
      • 这只是一个例子——这就是为什么我说你可能不得不摆弄确切的语法。当然,您可以弄清楚如何从元素中获取文本值并进行比较?
      猜你喜欢
      • 1970-01-01
      • 2022-10-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多