如何在Cypress中定位包含指定文本的表格行内的特定元素?
Cypress 定位含指定文本行内垃圾桶图标解决方案
你原来的实现代码存在语法错误,contains('UICypress')匹配到的是包含目标文本的单元格元素,后续使用.then("td")不符合API规范:then()方法需要传入回调函数,不能直接传入选择器字符串。
// 你的原错误写法 var btndelete = cy.get('#SCGrouGrid').find('.dx-data-row').contains('UICypress').then("td").eq(5).find(".dx-icon-trash");
正确的定位逻辑为:先匹配到包含指定文本的行元素,再在该行的范围内查找垃圾桶图标,参考实现如下:
// 推荐写法:适配行结构变动,不依赖单元格固定索引 cy.get('#SCGrouGrid') .find('.dx-data-row') .contains('UICypress') .closest('.dx-data-row') // 向上回溯到当前文本所属的整行元素 .find('.dx-icon-trash') .as('deleteBtn') // 可设置别名后续直接调用 // 调用示例:点击删除按钮 cy.get('@deleteBtn').click()
如果确认垃圾桶图标固定在每行的第6个单元格(索引从0开始计为5),也可以用如下写法:
cy.get('#SCGrouGrid') .find('.dx-data-row:contains("UICypress")') .find('td').eq(5) .find('.dx-icon-trash')


内容的提问来源于stack exchange,提问作者Tomasito
相关产品推荐
相关产品推荐

