Cypress测试中如何仅使用选择器的固定部分(如:nth-child)?
解决Cypress动态标签选择器问题
以下几种方法可以避开动态变化的abc-xx标签,仅用固定的:nth-child(n)部分定位目标元素:
直接使用后代选择器
不用关心中间的动态标签,直接匹配父元素下所有层级的xyz元素:cy.get(':nth-child(1) xyz') cy.get(':nth-child(2) xyz') cy.get(':nth-child(3) xyz')用通配符匹配中间动态标签
如果确定xyz是动态标签的直接子元素,用*通配符替代abc-xx,匹配任何中间元素:cy.get(':nth-child(1) > * > xyz') cy.get(':nth-child(2) > * > xyz') cy.get(':nth-child(3) > * > xyz')链式调用
.find()方法
先定位固定的父元素,再在其内部查找xyz元素,逻辑更清晰:cy.get(':nth-child(1)').find('xyz') cy.get(':nth-child(2)').find('xyz') cy.get(':nth-child(3)').find('xyz')匹配标签前缀(如果前缀固定)
要是abc-xx的前缀abc-始终不变,可以用属性选择器匹配标签名:cy.get(':nth-child(1) > [localName^="abc-"] > xyz')这里
localName^="abc-"表示匹配标签名以abc-开头的元素,能精准命中动态变化的中间标签。
内容的提问来源于stack exchange,提问作者Learner
相关产品推荐
相关产品推荐

