赛普拉斯-cy.click()不会在select2下拉列表中单击值

时间:2019-10-03 11:44:24

标签: cypress

我有一个具有select2类的下拉列表。单击下拉菜单中的箭头后,我得到下面在DOM中激活的代码,该代码在下拉菜单中具有值 Reason1 Reason2 。我想遍历可用值并选择所需的选项。

使用每个函数,我可以在数组上进行读写并获取可用的值,但是我无法对同一函数执行cy.click()来获取所选的值。我没有收到任何错误,并且代码运行正常,但是单击没有发生(在div,li或span标记上都没有)

`<ul class="select2-results">
  <li class="select2-results-dept-0 select2-result select2-result-selectable">
     <div class="select2-result-label">
       <span class="select2-match"></span>
        Reason1
     </div>
 </li>
   <li class="select2-results-dept-0 select2-result select2-result-selectable">
     <div class="select2-result-label">
       <span class="select2-match"></span>
       Reason2
     </div>
  </li>
</ul>`

下面是我的代码

    cy.get('#select2-drop > .select2-results').find('li').each(($el,index,$list) => {  
    let option = $el.find('div').text()

    if(option=='Reason2')
    {                
      $el.find('div').click()
    }
 })

如果我在if条件中添加$el.find('div').css('background-color','yellow'),则元素背景色将变为黄色,但未发生单击。

任何人都可以帮忙。 谢谢!

1 个答案:

答案 0 :(得分:0)

如果要选择第二个,可以使用以下命令

cy.get('#select2-drop > .select2-results')
    .type("{downarrow}")
    .type("{downarrow}")
    .type("{enter}")