赛普拉斯:如何在 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);
我希望能够获取所选选项的文本而不是值。我会使用该值,但 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);