如何在Cypress中检查元素class属性是否包含指定类?
你调用invoke('prop', 'class')拿到的是DOMTokenList类型的类名集合对象,不是普通字符串,原代码直接调用contains()会报错,因为DOMTokenList本身没有这个方法。
方案1:最小改动修复原有逻辑
直接用DOMTokenList自带的contains()方法判断类名是否存在,不会出现类名部分匹配的误判问题,代码如下:
pmanage.no_additional_cost().last().invoke('prop', 'class').then((classList) => { let Pclass = classList.toString() cy.log(Pclass) if(classList.contains('mat-checked')){ cy.log('mat-checked found') cy.writeFile(filename, Pclass) }else{ cy.log('Toggle is off') } })
方案2:Cypress原生断言写法(符合最佳实践)
如果只需要验证类名是否存在,不需要后续分支逻辑,直接用内置断言即可,代码更简洁:
// 验证元素存在mat-checked类 pmanage.no_additional_cost().last().should('have.class', 'mat-checked') // 验证元素不存在mat-checked类 pmanage.no_additional_cost().last().should('not.have.class', 'mat-checked')
内容的提问来源于stack exchange,提问作者Krina Modi
相关产品推荐
相关产品推荐

