javascript - ¿Cómo comprobar si el elemento existe en DOM en Cypress?

CorePress2024-01-25  9

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

Su guía para un futuro mejor - libreflare
Su guía para un futuro mejor - libreflare