Tengo varias páginas de inicio de sesión como:
El elemento de entrada es como:
<input placeholder="name@email.com" class="input" name="email" type="text" value="">El selector de Cypress es el siguiente:
cy.get('input[name="email"]').as('email').click();El elemento de entrada es como:
<input id="email" type="email" required="required" class="input">El selector de Cypress es el siguiente:
cy.get('input[id="email"]').as('email').click(); Si nos damos cuenta, el primer elemento de entrada tiene name=email mientras que el segundo tiene id=email .
¿Hay alguna manera de escribir un selector de ciprés donde pueda buscar la input[name="email"] si no se encuentra, busca la input[id="email"] ?
Sí hay. Se llama prueba condicional de ciprés según los documentos .
Hay varias formas de hacer esto, como se ve en los documentos, según lo que desee.
A continuación hay algo que podemos hacer
cy.get('input[name="email"]').then(($btn) => { if ($btn.length) { // do something if it's active $btn[0].click(); } else { // do something else cy.get('input[id="email"]').as('email').click(); } })Puede usar la , para hacer una condición OR si está usando selectores css. Algo como:
cy.get('input[name="email"],input[id="email"]').click()