如何在每个输入字段中输入值?

How can I input value in the each input field?

HTML:

<!-- Block 1-->
<div class="row">
  <div>
    <span>Type</span>
  </div>
  <div>
    <iput class="ant-select-dropdown-menu-item" placeholder="Input value"></iput>
  </div>
</div>
<!-- Block 2-->
<div class="row">
  <div>
    <span>Type</span>
  </div>
  <div>
    <iput placeholder="Input value"></iput>
  </div>
</div>
<!-- Block ..N -->
<div class="row">
  <div>
    <span>Type</span>
  </div>
  <div>
    <iput placeholder="Input value"></iput>
  </div>
</div>

JS:

for(let i = 0; i < 4; i++) {
  cy.contains('div', 'Type')
    .next()
    .find('div')
    .eq(i)     
    .click({ multiple: true })

  cy.get('.ant-select-dropdown-menu-item')
    .eq(i)
    .type(`value ${i}`)
}

有很多块,每个块都有输入字段。 我想为每个输入值。 我制作了循环,但仅在第一个输入值中输入了值。我该如何为每个输入字段解决这个问题?

您可以找到元素的所有实例并then use .each()迭代它们。

cy.contains('div', 'Type')
  .each(($el, index) => {
    cy.wrap($el).siblings('div').click();
    cy.get('.ant-select-dropdown-menu-item').eq(index).type(`value ${index}`);
})

考虑到这是输入元素<input placeholder="Input value"></input>,你可以直接在上面应用each。我会考虑 input 作为选择器,因为我没有确切的 HTML.

cy.get('input').each(($ele, index) => {
  cy.wrap($ele).type(`value ${index}`)
})
for(let i = 0; i < 4; i++) {
      cy.get('*[class^="row "]')
        .eq(i)
        .contains('div', 'Type')
        .next()
        .find('div')
        .eq(i)
        .click({ multiple: true });

    cy.get('.ant-select-dropdown-menu-item')
      .eq(i)
      .type(`value ${i}`)
 }