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

Cypress处理Div表格:验证每行首列文本前缀

解决Div表格批量行校验问题

要校验第40-45行首列文本的前缀,你可以通过筛选目标行元素,再用cy.each()遍历校验,具体代码如下:

// 筛选row-index在40到45之间的行
cy.get('div[row-index]').filter((index, el) => {
  const rowNum = parseInt(el.getAttribute('row-index'), 10);
  return rowNum >= 40 && rowNum <= 45;
})
// 遍历每一行做校验
.each($row => {
  // 定位当前行的首列(你的原代码用eq(1),如果首列是第一个元素请改成eq(0))
  cy.wrap($row).eq(1)
    .invoke('text')
    .then(text => {
      const productID = text.trim();
      // 直接校验前缀是否在允许列表中
      expect(['AA', 'BB', 'CC']).to.include(productID.slice(0, 2));
    });
});

关键说明:

  • 先用cy.get('div[row-index]')获取所有带行索引的元素,再通过filter()精准筛选40-45行,避免定位错误。
  • cy.each()可以直接遍历筛选后的元素集合,不需要额外的cy.wrap包裹整个集合,只需要在遍历内部用cy.wrap($row)把当前行转为Cypress可操作对象。
  • 用expect(...).to.include(...)替代原有的forEach判断,写法更简洁且符合Cypress的断言风格。

如果你的row-index属性值是连续的,也可以用更简洁的属性选择器写法,比如:

cy.get('div[row-index="40"], div[row-index="41"], div[row-index="42"], div[row-index="43"], div[row-index="44"], div[row-index="45"]')
  .each($row => {
    // 后续校验逻辑同上
  });

但这种写法在行数范围大时不够灵活,推荐用filter的方式。

内容的提问来源于stack exchange,提问作者Ziya I. Erogul

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 02:06:25