使用 Cypress 断言时,类型“JQuery<HTMLElement>”上不存在属性“值”

Kir*_*Lyn 2 javascript cypress

我试图断言输入字段的值:

cy.get('[data-vv-name="item price"]')
    .then(response => {
        expect(response.value).to.be.equal('100')
    })
Run Code Online (Sandbox Code Playgroud)

但我收到一个错误:

Property 'value' does not exist on type 'JQuery<HTMLElement>'
Run Code Online (Sandbox Code Playgroud)

但是当我在控制台尝试代码时:

$('[data-vv-name="item price"]').value
Run Code Online (Sandbox Code Playgroud)

我能够得到正确的值'100'。我应该添加/更新什么才能使我的断言正确?我在这里错过了什么吗?

编辑

使用以下内容,我能够做出我的断言

expect((<HTMLInputElement>response[0]).value).to.be.equal(10)
Run Code Online (Sandbox Code Playgroud)

Suc*_*UKR 5

jQuery 对象没有.value属性,但它们有.val()可以使用的方法

cy.get('[data-vv-name="item price"]')
  .then($el => {
    // $el is convention for naming jQuery objects
    expect($el.val()).to.be.equal('100')
  })
Run Code Online (Sandbox Code Playgroud)

.invoke()或在链中使用(参考invoke

cy.get('[data-vv-name="item price"]')
  .invoke('val')
  .then(value => {
    expect(value).to.be.equal('100')
  })
  .should('eq', '100')    // alternative to above assertion
Run Code Online (Sandbox Code Playgroud)

或者你可以使用.should('have.value', ...)链器(参考应该

cy.get('[data-vv-name="item price"]')
  .should('have.value', '100')
Run Code Online (Sandbox Code Playgroud)

或使用.value展开元素的属性,如您所示