<button _ngcontent-c21="" color="primary" mat-button="" class="mat-button 
mat-primary" ng-reflect-disabled="true" ng-reflect-color="primary" 
disabled=""><span class="mat-button-wrapper">


以上包含和元素,可以根据用户权限启用或禁用按钮。我正在尝试创建一个测试来验证按钮是否处于活动状态/已禁用(取决于已登录的用户)。
我正在尝试使用

"expect($input).not.to.be.disabled"


但我不确定如何将其与我的'get'元素一起使用(请参见下文)

"cy.get('button.mat-button.mat-primary').eq(8)"


#1 楼

好吧,这很尴尬简单。

cy.get('button.mat-button.mat-primary').eq(8).should('not.be.disabled')
cy.get('button.mat-button.mat-primary').eq(8).should('be.disabled')


,这将使我检查按钮是否已禁用。甚至不需要使用“期望”路线。

#2 楼

赛普拉斯文档显示了如何使用should()来验证元素是否已启用的示例:https://docs.cypress.io/api/commands/should.html#Assert-the-checkbox-is-disabled

cy.get(':button').should('be.disabled')


#3 楼

我最近发现此代码适用于我想检查是否为下一步操作启用了该元素的情况:

 this.button().then(($btn) => {
  if ($btn.is("enabled")) {
    //do something
  } else {
    //do something else
  }
})