Estoy probando una función en la que aparece un botón para que el usuario haga clic DESPUÉS de haber realizado otra acción.
Antes de tomar la acción, estoy comprobando si existe el botón:
cy.get('span') .contains('Select') .parent('button') .should('not.exist');
Y después de la acción, intento encontrar el mismo botón como este, pero falla. ¿Alguien sabría cómo hacer esto en Cypress?
Aquí está mi código completo:
cy.get('span') .contains('Select') .parent('button') .should('exist');
/* eslint-disable */ describe('Workgroup Switch', () => { beforeEach(() => { cy.visit('/login'); cy.get('input[id="username"]').type('boss@example.com'); cy.get('input[id="password"]').type('password'); cy.get('button[id="login-button"]').click(); cy.url().should('include', '/offers/workgroup'); }); it('switch workgroup', () => { cy.get('span') .contains('Select') .parent('button') .should('not.exist'); cy.get('.v-overlay__scrim').click(); cy.get('.text-h6') .contains('Workgroup #1') .parent() .parent() .click(); cy.contains('Make this my default workgroup'); cy.get('span') .contains('Select') .parent('button') .should('exist'); }); });
Debe usar la forma combinada de contains()
para obtener el elemento correcto.
cy.contains('span', 'Select') .parent('button') .should('exist');
Haciéndolo en dos partes así
cy.get('span') .contains('Select')
Cypress encuentra el primer intervalo en la página y luego verifica repetidamente su texto para "Seleccionar", pero no repite la cy.get('span')
.