【问题标题】:Click an exact match in cypress from drop down从下拉列表中单击柏树中的完全匹配项
【发布时间】:2022-11-30 10:16:42
【问题描述】:

首先,我正在做cy.contains(option),它点击了确切的值,例如-我想点击One,但是One One也在那里,所以cy.contains不工作。

我试过正则表达式,但它不工作

我正在尝试从下拉写入测试步骤中单击完全匹配;

cy.contains(new RegExp(option, "g"))

但没有给我正确的输出。我收到错误消息:Timed out retrying after 4000ms: Expected to find content: 'option' but never did.

【问题讨论】:

    标签: cypress


    【解决方案1】:

    为了使正则表达式起作用,您需要使用 ^$ 字符来指示字符串的开头和结尾

    // works on <span>One</span> but not on <span> One </span> or <span>One One</span>
    cy.get(`span`).contains(/^One$/)
    
    // so you might want to also include white space
    cy.get(`span`).contains(/^s?Ones?$/)
    

    【讨论】:

      【解决方案2】:

      由于您使用的是下拉菜单,因此您可以而且应该使用 .select() 命令,该命令将通过完全匹配来选择选项:

      cy.get('select')
        .select('One')
        .should('have.value', 'One')
      

      当下拉菜单是这样的时候,上面会选择第二个选项。

      <select>
        <option>One One</option>
        <option>One</option>
      </select>
      

      【讨论】:

        猜你喜欢
        • 2018-06-29
        • 2022-11-10
        • 2021-12-17
        • 1970-01-01
        • 1970-01-01
        • 2019-10-19
        • 1970-01-01
        • 1970-01-01
        • 2021-11-04
        相关资源
        最近更新 更多