Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

300
Vistas
El bloque 'else' de Cypress (javascript) se ejecuta incluso cuando la primera condición de la declaración 'if' es verdadera

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.

este es el error de ciprés: a continuación se muestra el error de ciprés:

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

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

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.

about 4 years ago · Juan Pablo Isaza Denunciar

0

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')
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda