如何测试从 Cypress todo 应用编辑字段?

How to test editing a field from Cypress todo app?

我是 Cypress 的新手,我正在使用他们的 todo app 示例,我想测试我们可以编辑字段的事实(双击它,输入,验证)

// use the example from Cypress for the todo app

describe('example to-do app', () => {
  beforeEach(() => {
    cy.visit('https://example.cypress.io/todo')
  })

  it('can edit a todo items', () => {
    // add it
    cy.contains('Pay electric bill')
        .parent()
        .dblclick()
        .type(' v2')
        .type('Cypress.io{enter}')


    // control it
    cy.get('.todo-list li')
        .should('have.length', 2)
        .last()
        .should('have.text', 'Pay electric bill v2')
  })
})

我遇到的错误是该字段不可输入,但我不知道为什么不能输入,因为当我查看 dbclick() 字段时,该字段是可编辑的

我该如何解决这个问题?

出现错误是因为您的 .contains('Pay electric bill').parent() 元素是 div,而不是您想要的 input 元素。

<div class="view">
  <input class="toggle" type="checkbox">
  <label>Pay electric bill</label>
  <button class="destroy todo-button"></button>
</div>

而不是使用 .parent()try using .sibling('input').

cy.contains('Pay electric bill')
        .siblings('input')
        .dblclick()
        .type(' v2')
        .type('Cypress.io{enter}')