Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

305
Views
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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!