使用赛普拉斯(刚刚开始),我无法找到一种方法来断言两个输入框中的文本相等,如图所示。用例是当用户设置取件位置时,默认情况下,相同的位置应出现在下拉框中。
为了测试上述内容,我编写了这段代码:
cy.get('input#dropFtsAutocomplete').should("have.value" , cy.get('input#ftsAutocomplete'));
正确地说,赛普拉斯抱怨以下错误:
错误:AssertionError:预期 ''具有 value {Object(chainerId,firstCall)},但值为'曼彻斯特 机场(MAN),曼彻斯特,英国'
我错过了什么?
答案 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)
})