Quiero verificar si un botón está activo (se puede hacer clic en él) o no está activo (existe pero no se puede hacer clic en él).
Intento las siguientes afirmaciones pero parece que está mal. porque la primera afirmación siempre es verdadera y la segunda siempre es falsa, independientemente de si se puede hacer clic en el botón o no.
cy.get('#switchdiv').should('not.be.disabled') //clickable cy.get('#switchdiv').should('be.disabled') //not clickableel código html para el botón en cada caso:
<button role="button" aria-disabled="false" class="styles__CTAButton-eowIhA dBjjkp switchover"></button> <button disabled="" role="button" aria-disabled="true" class="styles__CTAButton-eowIhA dBjjkp switchover"></button>alguna ayuda . gracias
Puedes hacer algo como esto:
cy.get('#Button').then(($btn) => { if ($btn.is(':disabled')) { cy.log('Button exists and is disabled!') return } else { cy.log('Button exists and is enabled!') cy.wrap($btn).click() } })Si la respuesta de Alapan no funciona, podría intentar usar el valor aria-disabled .
cy.get('#Button') .invoke('attr', 'aria-disabled') .then((ariaDisabled) => { // Probably helpful to also cy.log() the value cy.log(`ariaDisabled is ${ariaDisabled}`); if (ariaDisabled !== "true") { cy.log('Button exists and is disabled!') return } cy.log('Button exists and is enabled!') cy.get('#Button').click(); });