You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 15:36:03