Nuevo en Cypress y JavaScript, por favor ayuda
Estaba automatizando el caso de prueba para verificar el estado habilitado/deshabilitado del botón con la condición de que algunos elementos tuvieran el atributo html 'src' con un valor '/Client/images/iconNo.png' (el botón estará deshabilitado) y /Client/images/iconYes.png (el botón estará habilitado).
Utilicé la declaración if para verificar la condición anterior envolviendo los objetos para obtener el valor y usando el método '.then ()', a continuación se muestra el código de JavaScript
cy.get('.eligibilitySuccessfulGrant > :nth-child(1) > .cursor') .then(($checkListIcon) =>{ if(cy.wrap($checkListIcon).should('have.attr', 'src', '/Client/images/iconNo.png')){ verifyQIAPTab.clickRequestOrientation().should('be.disabled') } else (cy.wrap($checkListIcon).should('have.attr', 'src', '/Client/images/iconYes.png')) { verifyQIAPTab.clickRequestOrientation().should('be.enabled').click() } })Problema : si la primera declaración 'if' es verdadera, entonces debería pasar el caso de prueba, pero el ciprés arroja un error que indica que la condición else no se cumple.
donde el ciprés está comprobando esa .should('be.enabled').click() . ¿Cómo puedo resolver esto?
O
¿Hay alguna otra forma en Cypress para verificar mi caso de prueba anterior?
Por favor ayuden y sugieran Muchas gracias de antemano
Los comandos de Cypress son asíncronos. Eso significa que es mejor usar dos condiciones if separadas. Además, estás envolviendo el mismo elemento tres veces. Usar aserciones de JavaScript en combinación con comandos de Cypress sería mucho mejor.
Este método hasAttribute , por ejemplo, puede ayudarlo a eliminar la afirmación de la condición if.
Comparta el HTML interno de los botones para que pueda ayudarlo más.
No se puede usar un comando de Cypress para realizar un if() , los comandos siempre devuelven un objeto que no es verdadero/falso.
Use jQuery en lugar de comando
if ($checkListIcon.attr('src') === '/Client/images/iconNo.png')