赛普拉斯:如何在 select 下拉列表中获取 selected 选项的文本?

Cypress: How do I get the text of the selected option in a select drop-down list?

我希望能够获取所选选项的文本而不是值。我会使用该值,但 Angular 正在更改它并将该值放入 ng-reflect-ng-value 属性中。

<option _ngcontent-c1="" value="5: 1" ng-reflect-ng-value="1">Miscellaenous</option>

这可行,但我想检查它是否等于“Miscellaenous”

cy.get('#id-9999').find('.categoryList').should('have.value','Miscellaenous');

这对我有用:

cy.get('#id-9999').find('.categoryList').find(':selected').contains('Miscellaenous')

应该这样做:

cy.get('#id-9999').find('option:selected').should('have.text', 'Miscellaenous');

除其他事项外,它会检查精确匹配而不是子字符串(就像在您的解决方案中一样)。

我们发现将 find() 与 get() 链接起来有时会破坏我们的测试,因此我们使用其他方式:

cy.get("#my-select-element option:selected")
   .should("have.value", 3);

相对于:

cy.get("#my-select-element")
   .find("selected")
   .should("have.value", 3);