Estoy comprobando las funcionalidades de Cypress en Facebook en la página de registro de Facebook. Recibo el elemento de error no encontrado.
//Now checking the Create new account inputs cy.get('[name="firstname"]').click();//i)-> Click on the firstname cy.get('#u_5_a_BG > ._5dbc').should('not.be.visible');//ii)-> Check that error message is not displayed--> not working cy.get('[name="lastname"]').click();//iii)-> Click on the last name to make the error message in the first name to be displayed cy.get('#u_5_a_BG > ._5dbc').should('be.visible');//iv)-> Check that error message is diplayed--> not working
¿Podría decirme cómo obtener el elemento de imagen de error porque intenté usar selectores css y no funciona? he usado la clase de etiqueta pero todavía no funciona
Si solo desea verificar que el elemento está presente en el DOM pero no está visible, puede usar should('exist')
.
cy.get('selector').should('exist')
O puede usar directamente el contains()
para verificar que el mensaje de error primero no existe y luego es visible.
cy.get('[name="firstname"]').click() cy.contains('What\'s your name?').should('not.exist') cy.get('[name="lastname"]').click() cy.contains('What\'s your name?').should('be.visible')
Mi enfoque, navegue en relación con los campos con nombre.
Es probable que se generen otros selectores de clase y cambiarán en la próxima versión.
Todavía existe la posibilidad de que la estructura cambie (o se equivoque al principio), por lo que, como seguro adicional, agregue una verificación de que el elemento es del tipo <i>
.
cy.get('[name="firstname"]').click() cy.get('[name="firstname"]') .parent() .next() // icon is next from input's parent .should('not.be.visible') .should('have.prop', 'tagName', 'i') // double check navigating is successful cy.get('[name="lastname"]').click(); cy.get('[name="firstname"]') .parent() .next() .should('be.visible')