You need to enable JavaScript to run this app. Cypress如何获取mat-table中含指定data属性元素对应的行索引
优惠活动
大模型
产品
解决方案
定价
更多

Cypress如何获取mat-table中含指定data属性元素对应的行索引

解决方案

你的代码返回0的原因是直接对data-mat-icon-name='pinned'对应的mat-icon元素调用index(),返回的是该元素在自身同级兄弟节点中的索引,而非所在行的索引。

你不需要手动逐层调用parent(),使用closest()方法直接匹配最近的mat-row祖先元素即可,正确代码如下:

cy.get("mat-table")
  .find("[data-mat-icon-name='pinned']")
  // 向上查找最近的mat-row祖先元素
  .closest("mat-row")
  // 此时index()返回的是当前mat-row在所有同级行中的索引
  .invoke("index")
  .then(rowIndex => {
    cy.log(rowIndex); // 输出预期值1
  })

说明

  • closest()比逐层调用parent()更稳妥,不用考虑mat-icon和mat-row之间是否有其他嵌套节点,只要是祖先层级的最近mat-row都能匹配到
  • 拿到对应行元素后调用index(),会自动计算该元素在同级所有mat-row里的位置,索引从0开始计数,和你示例的行顺序匹配,即可得到正确结果。

内容的提问来源于stack exchange,提问作者Inês Gomes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.11 03:54:02