如何使用 Cypress 删除 "selected" 属性并将其移动到另一个选项?

How to remove the "selected" Attribute and move it to another option using Cypress?

我试过:

cy.get(`div[class="input-group input-group-sm"] select[name="activeStatus"]`).find(":selected").invoke("removeAttr", "selected")

这并没有像我希望的那样起作用,但我认为它是最接近它的。有人有任何提示吗?我想将“Selected”属性从 Active 移动到 Cancelled。

你已经完成了一半,移除部分成功了。要将 selected 添加到 Cancelled,请调用 attr

// remove
cy.get('select')
  .find(':selected')
  .should('contain', 'Active')
  .invoke('removeAttr', 'selected')

// add
cy.get('select')
  .find('option')
  .contains('Cancelled')
  .invoke('attr', 'selected', true)

//confirm
cy.get('select')
  .find(':selected')
  .should('contain', 'Cancelled')

这给了你

<option selected="selected">Cancelled</option>

如果你喜欢

<option selected>Cancelled</option>

改用这个

// add
cy.get('select')
  .find('option')
  .contains('Cancelled')
  .then($el => $el[0].setAttribute('selected', ''))