es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

La condición if/else en Cypress no funciona como se espera.

Tengo este código:

Cypress.Commands.add('VerifyLoginState', () => {
    if(cy.contains('Login')) {
        cy.get('.form-control').eq(0).type('firstfield')
        cy.get('.form-control').eq(1).type('secondfield')
        cy.get('.btn-login').click()
        cy.wait(2500)
        cy.contains('Upcoming Appointments').should('be.visible')
    }
    else
    {
        cy.contains('Appointment summary').should('be.visible')
    }
})

¿Cómo debo escribir el código para que pueda pasar a la condición else, cuando estoy autenticado en el navegador y la condición if no es válida?

En otras palabras, quiero verificar si un elemento está presente en la página, y aunque no esté presente, el código no debe dar un error y continuar.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Puedes modificar el código de la siguiente manera:

    Cypress.Commands.add('VerificarEstadoDeInicioDeSesion', () => {
        cy.contains('Iniciar sesión').then(loginButton => {
            if (loginButton.length !== 0) {
                cy.get('.form-control').eq(0).type('primerCampo')
                cy.get('.form-control').eq(1).type('segundoCampo')
                cy.get('.btn-login').click()
                cy.wait(2500)
                cy.contains('Próximas citas').should('be.visible')
            } else {
                cy.contains('Resumen de citas').should('be.visible')
            }
        })
    })
    

    Explicación:

    1. Usamos cy.contains().then() para obtener el elemento con el texto ‘Iniciar sesión’. La función .then() toma una función de devolución de llamada que recibe como argumento el elemento encontrado por cy.contains().
    2. Comprobamos si la variable loginButton tiene una longitud distinta de 0, lo que significa que el elemento existe.

    3. Realizamos las acciones necesarias si el botón de inicio de sesión existe o pasamos al bloque else si no está presente.

    El uso de .then() y comprobar la longitud del elemento encontrado es una buena manera de evitar que el código lance un error si el elemento no se encuentra.

Comments are closed.