javascript - 如何在 Cypress 中获取所有特定按钮并单击具有特定数据 ID 的每个按钮

标签 javascript html jquery cypress selector

我在选择页面上具有相同类名但在 Cypress 中具有不同数据 ID 的按钮时遇到问题。

有多个具有不同 ID 的类(class),我需要循环浏览每个类(class)并单击“注册”按钮。页面上还有其他按钮(查看类(class)),但我只想单击注册按钮。

我尝试了下面的代码,但在 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>

cy.get(.appMovieContainer [data-movie-id=${id}] > 按钮).click()

最佳答案

你可以做这样的事情。这将遍历所有 .course 类,并在其中单击文本为注册的按钮一一。

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()
})

关于javascript - 如何在 Cypress 中获取所有特定按钮并单击具有特定数据 ID 的每个按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68501113/

相关文章:

Javascript:需要注册表单帮助

html - 小屏幕上的 Bootstrap h1 top-margin

javascript - Prettyphoto - 如何将唯一参数传递给回调函数

javascript - jquery 动画和 .offset

javascript - Node.js 错误抛出被称为不好的做法,但对于 TDD 来说是必不可少的

javascript - 如何使用 ID 循环 JavaScript 函数?

javascript - 单击按钮时如何使页面滑到屏幕上?

JavaScript : Change Div Length

javascript - 如何使输入字段可拖动

javascript - AngularJS + Facebook 喜欢指令不起作用