tengo un codigo como
cy.get(`[data-cy="${test}"]`).filter(':visible').click({force: true})
funciona para algunas pruebas, pero para algunos elementos no hay "filtro" y funcionan sin .filter(':visible'), por lo que estoy tratando de acomodar ambas funciones en un solo código para mantenerlo genérico para todo tipo de botones. ¿Hay una manera de hacerlo?
He intentado algunos pasos como:
cy.get(`[data-cy="${test}"]`).filter(':visible'|| ':hidden').click({force: true})
No estoy seguro de si es correcto o incorrecto, ¡pero definitivamente no funciona!
Si está utilizando {force: true}
, no importa si el elemento está visible u oculto, Cypress hará clic en él. Entonces, en mi opinión, no necesita la opción de filtro.
cy.get(`[data-cy="${test}"]`).click({force: true})
O, si desea aplicar directamente la condición OR en .filter
, puede hacerlo:
cy.get(`[data-cy="${test}"]`).filter(':visible,:hidden').click({force: true})
O, si desea usar If-Else, puede hacer algo como esto:
cy.get(`[data-cy="${test}"]`).then(($ele) => { if ($ele.filter(':visible')) { cy.wrap($ele).click() } else if ($ele.filter(':hidden')) { cy.wrap($ele).click({force: true}) } })