【问题标题】:How i can select dropdown by its name in cypress?我如何在柏树中按名称选择下拉列表?
【发布时间】:2020-08-26 07:10:46
【问题描述】:

请点击屏幕截图上的文字:

Here, I want to delete this posted item by its post name by cypress

HTML DOM

赛普拉斯代码:

cy.get('.idea-row').contains(potsname).within(()=>{
        cy.get('.idea-row > .drop-down-menu ').click({force:true})
        cy.get('.idea-row > .drop-down-menu > .options-list').contains('Remove').click({force:true})
    })

Error :

【问题讨论】:

    标签: cypress


    【解决方案1】:

    within() command "将所有后续 cy 命令范围限定在此元素内"。换句话说,within() 中的回调使用一个 DOM 子树,该子树从 within() 之前的命令给出的元素开始。

    在您的情况下,它是由 contains(postname) 产生的元素,您会收到错误消息,因为您正在此元素中寻找 .idea-row 元素。

    另外,在您的情况下,由于dropdown-menu 元素不在contains(postname) 产生的元素内,您必须以这种方式使用contains()within()

    cy.contains('.idea-row', potsname).within(()=>{
      cy.get('.drop-down-menu').click({force:true});
      cy.get('.drop-down-menu > .options-list').contains('Remove').click({force:true});
    });
    

    【讨论】:

    • 感谢您的回复。它对我有用,我现在明白了
    • 很高兴我能帮上忙。请考虑投票或接受答案以鼓励更多人提供帮助。
    【解决方案2】:
    cy.contains('.idea-row', postname).within(($a)=>{
                // locate all of the spaces 
                    if ($a.find('.drop-down-menu > .toggle > .zang-icon').length > 0) {   
                        cy.get('.drop-down-menu > .toggle > .zang-icon').click({force:true})
                        cy.get(' .drop-down-menu > .options-list > :nth-child(1) > .list-row > div > p')
                        .contains('Remove').click({force:true}) // click on "Edit Space" option of first newly created space drp dwn 
    
                    }
                })
    

    以上解决方案对我有用

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-06-29
      • 1970-01-01
      • 2022-11-10
      • 2016-08-18
      • 2020-01-31
      • 2021-12-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多