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

在Cypress中获取父Div内特定Div数量及筛选含userid元素的方法

在Cypress中处理DOM元素的两个常见问题

问题1:获取某一div内部特定div的数量

核心思路是先定位父容器,再查找内部目标元素,最后获取其长度:

示例代码

// 假设父div有类名.parent-container,目标div有类名.target-item
cy.get('.parent-container')
  .find('div.target-item')
  .its('length')
  .then(count => {
    console.log(`目标div数量:${count}`);
    // 可添加断言验证数量符合预期
    expect(count).to.equal(3);
  });

如果父div需要通过文本定位:

cy.get('div:contains("父容器标识文本")')
  .find('div.specific-class')
  .its('length')
  .should('be.gte', 1); // 断言数量至少为1

问题2:筛选id为chatLisHolder的元素下包含'userid'的子元素

根据包含内容的类型(文本或属性),有两种常见实现方式:

筛选文本包含'userid'的元素

cy.get('#chatLisHolder')
  .children() // 或用.find()查找更深层级的元素
  .filter(':contains("userid")')
  .then(filteredEls => {
    // 对筛选后的元素执行操作,比如遍历或断言
    filteredEls.each((index, el) => {
      cy.wrap(el).should('contain', 'userid');
    });
  });

筛选属性包含'userid'的元素

如果元素带有包含'userid'的属性(如data-userid="xxx-userid-xxx"),可以用属性选择器或自定义筛选逻辑:

// 方法1:直接用属性选择器
cy.get('#chatLisHolder [data-userid*="userid"]')
  .should('have.length.greaterThan', 0);

// 方法2:自定义筛选回调
cy.get('#chatLisHolder')
  .find('*')
  .filter((_, el) => {
    return el.getAttribute('data-userid')?.includes('userid');
  });

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 17:09:25