3

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

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

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

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

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

我错过了什么?

4

2 回答 2

5

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

cy.get('input#ftsAutocomplete').invoke('val').then(pickUpLocation => {
        cy.get('input#dropFtsAutocomplete').should('have.value', pickUpLocation)
    })
于 2018-02-27T11:32:53.793 回答
2

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

我一直在做的方式是这样的

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

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

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

于 2018-02-22T08:50:25.433 回答