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

Cypress - Compare equality of two inputs

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

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

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

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

Error: AssertionError: expected '' to have value { Object (chainerId, firstCall) }, but the value was 'Manchester Airport (MAN), Manchester, United Kingdom'

我错过了什么?

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

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

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

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

您可能必须 fiddle 使用获取文本值的确切语法。

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

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