赛普拉斯 - 比较两个输入的相等性

时间:2018-02-21 16:20:41

标签: javascript jquery testing chai cypress

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

为了测试上述内容,我编写了这段代码:

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

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

  

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

我错过了什么?

2 个答案:

答案 0 :(得分:1)

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

我一直在做的事情就像是

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

本质上,cypress命令是异步的,因此您可以采用与承诺类似的方式处理它们。

您可能需要弄清楚获取文本值的确切语法。

答案 1 :(得分:0)

为了达到这个目的,请按照赛普拉斯常见问题解答:

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