Cypress验证DIV表格列数据一致性时如何排除表头
解决Cypress校验过滤网格表时排除表头的方案
方法1:使用.slice(1)跳过首个表头元素
直接在获取元素后用.slice(1)剔除第一个表头元素,再进行校验:
cy.get('div[data-field="name"]') .slice(1) // 跳过第一个表头元素 .each($col => { expect($col.text()).to.eq('Bob') })
如果想用then的方式实现:
cy.get('div[data-field="name"]') .slice(1) .then($cols => { const count = $cols.length cy.wrap($cols).should('have.text', 'Bob'.repeat(count)) })
方法2:使用CSS选择器直接排除表头
利用:not(:first)选择器,在定位元素阶段就排除首个表头元素:
cy.get('div[data-field="name"]:not(:first)') .each($col => { expect($col.text()).to.eq('Bob') })
方法3:通过父元素区分表头与数据行(更可靠)
如果网格有明确的结构区分表头和数据行(比如表头在带header类的容器,数据行在data-row类容器),可以直接定位数据行内的元素,从根源避免选中表头:
// 假设数据行的父容器带有类名"data-row" cy.get('.data-row div[data-field="name"]') .each($col => { expect($col.text()).to.eq('Bob') })
内容的提问来源于stack exchange,提问作者Steelshark910
相关产品推荐
相关产品推荐

