Cypress: ¿Cómo saber si el elemento es visible o no al usar la condición If?
La respuesta de la pregunta anterior funciona perfectamente para los selectores de CSS. La respuesta es
cy.get("body").then($body => { if ($body.find("selector_for_your_button").length > 0) { //evaluates as true if button exists at all cy.get("selector_for_your_button']").then($header => { if ($header.is(':visible')){ //you get here only if button EXISTS and is VISIBLE } else { //you get here only if button EXISTS but is INVISIBLE } }); } else { //you get here if the button DOESN'T EXIST assert.isOk('everything','everything is OK'); } });Quiero lograr algo similar pero para XPath. ¿Alguien puede ayudarme?
Gracias de antemano
Con XPath puedes usar count()
cy.xpath(`count(//*[@class="${selector}"])`) .then(count => { if (count > 0) { cy.xpath(`//*[@class="${selector}"]`) // repeat without count .click() } else { } })Pero creo que la advertencia de @jjhelguero sigue vigente. No hay ningún reintento con las pruebas condicionales, por lo que está perdiendo la mayor ventaja de Cypress: reducir la descamación en sus pruebas.