首页 > 解决方案 > 赛普拉斯工具 - 如何在显示和隐藏按钮上执行点击操作,无法在此按钮上执行操作

问题描述

我有一个像下面这样的场景,当我在输入框操作中填充一些数据时,隐藏和显示按钮将显示按钮,否则按钮处于隐藏模式以下是代码,请建议我在输入代码后如何运行我的自动化代码的解决方案输入框

当按钮启用模式 - 在输入框中没有输入文本

<button data-v-320fbb42= type="button" disabled="disabled" class="btn z-btn mr-1 btn-primary rounded-0 disabled" style="position: relative;"><div data-v -320fbb42= class="d-flex flex-row justify-content-center align-items-center">保存</div></button>

else when button disabled mode -- 在输入框中输入正确的文本后

<button data-v-d0c5d35c= type="button" class="btn z-btn mr-1 btn-primary rounded-0" style="position: relative;"><div data-v-d0c5d3c= class=d -flex flex-row justify-content-center align-items-center> 保存</div></button>

所以我尝试了下面的所有场景,但注意到工作正常,cy.get('button').should('be.disabled').invoke('show').should('be.enabled').contains( '保存').click()

 cy.contains('Save').click({force: true})
cy.get('button', 'Save').should('be.disabled');
 cy.contains('button', 'Save').click();

感谢您的建议或帮助

标签: cypressui-automation

解决方案


由于您的禁用状态基于一个类 - 我在https://docs.cypress.io/api/commands/should.html#Value中找到了下一个验证解决方案

cy.get('button', 'Save').should('have.class', 'disabled')

cy.input(inputSelector).type(text)
cy.get('button', 'Save').should('not.have.class', 'disabled')

以及强制启用它的解决方案

$(selector).removeClass('disabled')
cy.get('button', 'Save').should('not.have.class', 'disabled')

推荐阅读