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

3
使用 Cypress(刚开始学习),我找不到一种方法来断言两个输入框中的文本相等,就像图片中所示。使用情况是,当用户设置接送点时,默认情况下应该在下车框中出现相同的位置。

为了测试上述内容,我编写了以下代码:
  cy.get('input#dropFtsAutocomplete').should("have.value" , cy.get('input#ftsAutocomplete'));

正确地说,Cypress报错如下:

Error: AssertionError: 期望值为{ Object (chainerId, firstCall) },但实际值是'Manchester Airport (MAN), Manchester, United Kingdom'。

我漏掉了什么?

2个回答

5
为了实现这一点,只需要遵循Cypress常见问题解答(FAQ)即可:
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。 - user3727540
然而,它不能正常工作,因为我得到了错误:.trim()未定义。 - user3727540
这只是一个示例 - 这就是我说你可能需要摆弄一下确切语法的原因。你肯定可以想出如何从元素中获取文本值并进行比较吧? - Richard Matsen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接