【问题标题】:Cypress: How do I get the text of the selected option in a select drop-down list?赛普拉斯:如何在选择下拉列表中获取所选选项的文本?
【发布时间】:2018-07-07 11:40:15
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: cypress


    【解决方案1】:

    这对我有用:

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

    【讨论】:

    • 我会看看我是否可以删除这个问题,因为我已经在另一篇文章中自己回答了。呃!
    • 哈哈。将其标记为指向您上一个问题的重复链接,因为它可能不允许您删除,因为至少存在一个答案。
    • 我将原件标记为重复件,因为这个已获得更多关注:stackoverflow.com/q/48666908/1108305
    • 我从这个答案中删除了关于重复问题的部分。最初是好的上下文,但随着这个问题的老化,它与实际答案并不特别相关。删除的文字:“好吧,我脑子里放了个屁,实际上我以前问过这个问题,但忘记了怎么做。”
    【解决方案2】:

    应该是这样的:

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

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

    【讨论】:

    • 我认为你正在做某事。我更喜欢这种方式!!!!!!!!!
    【解决方案3】:

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

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

    相对于:

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

    【讨论】:

      猜你喜欢
      • 2019-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-27
      • 2020-10-13
      • 1970-01-01
      • 2019-12-18
      • 1970-01-01
      相关资源
      最近更新 更多