You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Cypress测试中从筛选后的行的td元素中获取文本?

解决方案

1. 获取单一行的指定单元格文本(以第一行为例)

如果只需要筛选后第一行的第3个单元格文本,直接通过链式命令简化代码,避免嵌套then:

cy.get('#myTable tbody tr')
  .filter(':not(:contains("Corporate Approved"))')
  .first() // 选中筛选后的第一行
  .find('td').eq(3) // 定位该行第3个td(注意:eq索引从0开始,需根据实际单元格位置确认索引)
  .invoke('text') // 直接获取文本内容
  .then((cellText) => {
    cy.log(cellText);
    // 可在此处添加断言或其他业务逻辑
  })

2. 遍历所有筛选行,批量获取指定单元格文本

如果需要处理所有符合条件的行,使用each循环遍历,代码更简洁:

cy.get('#myTable tbody tr')
  .filter(':not(:contains("Corporate Approved"))')
  .each(($row) => {
    // $row是jQuery对象,可直接调用find方法
    const cellText = $row.find('td').eq(3).text();
    cy.log(cellText);
    // 对每个单元格文本做后续处理
  })

关于$rows[0].find('td').eq(3)不生效的原因

$rows是Cypress返回的jQuery对象,$rows[0]会取出原生DOM元素,而原生DOM没有find()方法。如果要继续使用该方式,需要将原生DOM转成jQuery对象:

.then(($rows) => {
  const cellText = $($rows[0]).find('td').eq(3).text();
  cy.log(cellText);
})

不过相比之下,前面两种链式命令的写法更符合Cypress的最佳实践,代码可读性更高。

内容的提问来源于stack exchange,提问作者vitaliy4us

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 12:55:03