Saltar al contenido

Cómo verificar si el elemento existe usando Cypress.io

Haz todo lo posible por interpretar el código correctamente previamente a usarlo a tu trabajo y si tquieres aportar algo puedes comentarlo.

Solución:

Solo agregaré que si decides hacer si la condición marca la casilla .length propiedad de cy.find comando, debe respetar la naturaleza asincrónica de cypress.

Ejemplo:
La siguiente condición se evalúa como false a pesar de que existe el botón appDrawerOpener

    if (cy.find("button[data-cy=appDrawerOpener]").length > 0)    //evaluates as false

Pero este se evalúa como true porque $body la variable ya está resuelta ya que estás en .then() parte de la promesa:

    cy.get("body").then($body => 
        if ($body.find("button[data-cy=appDrawerOpener]").length > 0)    //evaluates as true
            cy.get("button[data-cy=appDrawerOpener]")
            .click();
        
    );

Lea más en la documentación de Cypress sobre pruebas condicionales

ha sido cuestionado antes: declaración condicional en ciprés

Por lo tanto, básicamente puedes probar esto:

cy.get('header').then(($a) =>  
        if ($a.text().includes('Account')) 
            cy.contains('Account')
            .click(force:true)
         else if ($a.text().includes('Sign'))  
            cy.contains('Sign In')
            .click(force:true)  
         else 
            cy.get('.navUser-item--account .navUser-action').click(force:true)
        
    )

cypress, todos los pasos son asíncronos, por lo que debe hacer una función común en el archivo de comandos o en el archivo de objeto de la página,…

    export function checkIfEleExists(ele)
    return new Promise((resolve,reject)=>
        /// here if  ele exists or not
        cy.get('body').find( ele ).its('length').then(res=>
            if(res > 0)
                //// do task that you want to perform
                cy.get(ele).select('100').wait(2000);
                resolve();
            else
                reject();
            
        );
    )



// here check if select[aria-label="rows per page"] exists
cy.checkIfEleExists('select[aria-label="rows per page"]')
.then(e=>
        //// now do what if that element is in ,,..
        )
.catch(e=>
    ////// if not exists...
    )

Comentarios y puntuaciones del artículo

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *