如何获取所有特定按钮,并在cypress中单击每个具有特定数据id的按钮

cfh9epnr  于 2021-09-13  发布在  Java
关注(0)|答案(3)|浏览(398)

我在选择cypress中具有相同类名但不同数据ID的页面上的按钮时遇到问题。
有多个课程具有不同的ID,我需要循环浏览每个课程并单击 Register 按钮页面上还有其他按钮(查看课程),但我只想单击 Register 按钮
我尝试了下面的代码,但在cypress中没有成功:

cy.get(`.university [data-course-id=${id}] > button`).click()
cy.get(`.university [data-course-id=“1234”}] > button`).click()

在chrome开发工具中也尝试了这个方法,以获得一个特定的按钮。我需要得到页面上的每个注册按钮。

$('.university [data-course-id=“1234”] > button')

但是cypress说它找不到这种元素。
问题是什么?我们如何选择所有注册按钮并单击每个按钮?
谢谢你的帮助!

<div class="university">
  <div class="course" data-course-id="1234">
    <div class="courseTitle">
      <span>Computer Science</span>
       <button>View Course</button>
     </div>
     <button>Register</button>
  </div>
  <br>

  <div class="course" data-course-id="bio3">
    <div class="courseTitle">
      <span>Biology</span>
       <button>View Course</button>
     </div>
     <button>Register</button>
  </div>
  <br>

  <div class="course" data-course-id="987b">
    <div class="courseTitle">
      <span>English</span>
       <button>View Course</button>
     </div>
     <button>Register</button>
  </div>
</div>

赛格( .appMovieContainer [data-movie-id=${id}] > button )。单击()

kyvafyod

kyvafyod1#

你可以这样做。这将遍历所有 .course 类,并在其中单击按钮,将文本作为register逐个显示。

cy.get('.course').each(($ele) => {
    cy.wrap($ele).find('button').contains('Register').click()
})

cy.get('.course').each(($ele) => {
    cy.wrap($ele).find('button').eq(1).click()
})
gg0vcinb

gg0vcinb2#

问题在于

cy.get(`.university [data-course-id=“1234”}] > button`).click()


流氓 } ,这可能是个打字错误
引号打了个记号 1234 不被柏树认出来。
试试这个:

expect('“').not.to.eq('"')       // true  
console.log('“'.charCodeAt(0))   // 8220  
console.log('"'.charCodeAt(0))   // 34

正确的版本是

cy.get('.university [data-course-id="1234"] > button')

这没有什么问题 .each() ,但另一种方法是使用 :contains() 在选择器中

cy.get('.university .course button:contains("Register")')
  .click({multiple: true})                          // "multiple" will click all matching buttons
mm9b1k5b

mm9b1k5b3#

你可以试试 cy.get('[button="Register"]') 然后使用 each 方法来执行单击操作。
柏树

相关问题