Quiero saber cómo comprobar si existe un elemento en el DOM de una página web en Cypress.
¿Cuál sería el equivalente de este fragmento de código en Selenium en Cypress?
Boolean Display = driver.findElement(By.xpath("locator")).isDisplayed();
------------------------------------
1.Para comprobar que el elemento existe en el DOM:
cy.get(selector).should('exist')
2.Para comprobar que el elemento no existe en DOM:
cy.get(selector).should('not.exist')
3.Para comprobar que el elemento está visible:
cy.get(selector).should('be.visible')
4.Para comprobar que ese elemento no está visible:
cy.get(selector).should('not.be.visible')
5.Usando JQuery:
cy.get('body').then(($body) => {
if ($body.find(selector).length > 0) {
//element exists do something
}
})
------------------------------------
Para realizar consultas con un localizador xpath, instale la extensión cypress-xpath.
Instalar con npm
instalación npm -D cypress-xpath
Instalar con hilo
hilo agregar cypress-xpath --dev
En la prueba
cy.xpath(locator) // driver.findElement(By.xpath("locator"))
Agregue también una verificación de visibilidad
cy.xpath(locator) // driver.findElement(By.xpath("locator"))
.should('be.visible') // isDisplayed()
o
cy.xpath(locator) // driver.findElement(By.xpath("locator"))
.should('not.be.hidden') // isDisplayed()
Compartir
mejorar esta respuesta
Seguir
Respondido
29 de marzo de 2021 a las 8:44
usuario15239601
usuario15239601
4
¿Podría hacer esto?: var existe = cy.xpath(locator).should('be.visible') //true o false
-Amina
29/03/2021 a las 21:47
Si su localizador xpath incorpora el método count(), puede probar el valor de esta manera cy.xpath(locator-with-count).entonces(count => { const existe = !!count; ....
–
usuario15239601
30 de marzo de 2021 a las 13:16
Gracias, eso responde a mi pregunta, no entiendo por qué no hay una solución para implementar esto de una manera mucho más sencilla como en Selenium.
-Amina
30 de marzo de 2021 a las 23:54
En Cypress no debes extraer valores de la cadena de comandos, ten en cuentaporque puede romper el mecanismo de reintento (que Selenium no tiene).
–
usuario15239601
31 de marzo de 2021 a las 2:50