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

Cypress检测禁用按钮失败,求助正确检测方法

解决方案建议

从错误信息和你提供的按钮代码来看,这个按钮的禁用状态不是通过原生disabled属性实现的,而是通过添加formNotChanged类来控制样式或交互(比如设置pointer-events: none让按钮无法点击),所以Cypress原生的have.attr('disabled')和be.disabled断言会失效——这两个断言都是检查按钮的原生disabled属性是否存在。

你可以根据实际的禁用逻辑选择以下方案:

  • 断言禁用类存在:如果按钮是通过formNotChanged类标记为禁用状态,直接断言该类存在:

    cy.getBySel('save-button').should('have.class', 'formNotChanged')
    
  • 检查按钮是否不可点击:如果按钮是通过CSS样式pointer-events: none禁用点击,断言该样式:

    cy.getBySel('save-button').should('have.css', 'pointer-events', 'none')
    
  • 验证按钮无法触发点击:尝试点击按钮,然后断言预期的操作(比如表单提交)没有发生,例如:

    cy.getBySel('save-button').click()
    // 断言表单没有提交,比如页面URL没有变化,或者提交后的元素未出现
    cy.url().should('not.include', '/success')
    

另外,建议先查看页面的CSS代码,确认formNotChanged类具体是如何实现按钮禁用效果的,这样能更精准地编写断言。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 12:06:42