No puedo ver los mensajes de brindis en Cypress. Intenté la prueba en el navegador y la línea de comandos. También intenté agregar esperar.
it('Login with invalid password', () => { login.enterEmail(testData.username) login.enterPassword(testData.invalidPassword) login.submit() cy.wait(2000) login.getToastError().contains(testData.invalidCredentialsError) })Cualquier entrada relacionada con los mensajes de brindis con ciprés será útil. Gracias por adelantado.
Esto funcionó para mí cuando necesitaba verificar que estaba presente y tenía el mensaje correcto. Probablemente no necesitaba el selector en .contains() pero funciona.
cy.get('ion-toast').should('exist').shadow().contains('.toast-message','Invalid username or password.'); El método .shadow() fue la magia para ver el interior de la tostada.
El problema al que te enfrentas es que el brindis aparece lentamente (en comparación con la velocidad de ejecución de la prueba).
TLDR: Use cy.contains('my-selector', 'my-text')
El uso cy.get('my-selector').contains('my-text') a intentar el texto my-text , pero no la existencia de my-selector .
Usando el formato cy.contains('my-selector', 'my-text') esperará a que aparezca el elemento, luego verificará su texto.
Entonces, para un brindis que tiene id="toaster"
it('Login with invalid password', () => { login.enterEmail(testData.username) login.enterPassword(testData.invalidPassword) login.submit() cy.contains('#toaster', testData.invalidCredentialsError) }) O pase el texto de error a login.getToastError
it('Login with invalid password', () => { login.enterEmail(testData.username) login.enterPassword(testData.invalidPassword) login.submit() login.getToastError(testData.invalidCredentialsError) }) // login - approximate revision getToastError(errorMessage) { if (errorMessage) { cy.contains('#toaster', testData.invalidCredentialsError) } else { return cy.get('#toaster').invoke('text') }Suponiendo que login.getToastError() traduzca en algo como cy.get('selector') entonces puede hacer algo como esto:
Para coincidencia de texto parcial:
it('Login with invalid password', () => { login.enterEmail(testData.username) login.enterPassword(testData.invalidPassword) login.submit() login .getToastError() .should('be.visible') .and('include.text', testData.invalidCredentialsError) })Para coincidencia exacta de texto:
it('Login with invalid password', () => { login.enterEmail(testData.username) login.enterPassword(testData.invalidPassword) login.submit() login .getToastError() .should('be.visible') .and('have.text', testData.invalidCredentialsError) })