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

Cypress如何校验带aria-checked属性的自定义复选框选中状态

问题原因

你之前的代码执行失败的核心原因是定位元素错误:aria-checked属性没有挂载在你定位的外层<mat-checkbox>(id为DAY1)节点上,而是存在于它内部的隐藏原生<input>节点(id为DAY1-input)上。

同时你之前的写法也存在几个常见误区:

  • have.value用于断言元素的value属性,不能用来校验aria-checked这类自定义属性
  • aria-checked是HTML属性(attribute)不是DOM原生属性(property),不要用have.prop做断言
  • aria-checked的属性值是字符串格式的'true'/'false',不是布尔值,断言参数要加引号

正确实现

你已经找到的写法是完全正确的,直接定位到携带属性的input节点做断言即可:

cy.get('#DAY1-input').should('have.attr', 'aria-checked', 'true')

如果需要复用外层mat-checkbox的定位,可以用嵌套查找的写法,适配性更强:

cy.get('#DAY1')
  .find('input.mat-checkbox-input')
  .should('have.attr', 'aria-checked', 'true')

内容的提问来源于stack exchange,提问作者fasswas

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 18:06:00