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

Cypress如何获取含指定属性的所有元素并统计数量?

获取包含特定属性的元素并统计数量

我想要获取所有包含特定属性(无论属性值是什么)的元素,并统计找到的元素数量。例如获取所有带有row-index属性的div元素,示例DOM结构如下:

<div row-index="0" style="height: 47px; transform: translateY(0px);">aaa</div>
<div row-index="1" style="height: 47px; transform: translateY(0px);">bbb</div>
<div row-index="3" style="height: 47px; transform: translateY(0px);">ccc</div>

我尝试了以下代码但无法生效:

cy.get('div[@row-index]').should('have.length', 3);

解决方法

你的代码问题出在选择器语法上:你用了类似XPath的[@row-index]写法,但Cypress的cy.get()默认使用CSS选择器,CSS选择器中匹配"存在某属性"的元素语法是元素[属性名],不需要加@符号。

修改后的正确代码:

cy.get('div[row-index]').should('have.length', 3);

补充说明

如果属性名包含特殊字符(比如空格、非ASCII字符等),可以用引号包裹属性名,例如:

// 匹配带有data-custom-attr属性的div
cy.get('div["data-custom-attr"]').should('have.length', N);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 01:27:15