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
相关产品推荐
相关产品推荐

