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
相关产品推荐
相关产品推荐

