Un error de consola no es una excepción sin capturar.
Recoge mensajes y errores de página por separado, después comprueba el resultado.

Edición traducida. Los identificadores técnicos permanecen en su forma original.

Un test pasa aunque la página escribe un error durante la acción. En otro lanzamiento, un script arroja una excepción sin capturar mientras el título sigue visible. Son señales distintas. Recoger una no describe la otra.
La API Page documenta console para llamadas de consola y pageerror para excepciones sin capturar. ConsoleMessage da tipo y texto. Conserva el canal para no inventar un diagnóstico de excepción desde un mensaje.
Escucha antes de actuar
Nuestra página inventada tiene un botón console.error y otro que programa un Error. No hay recursos externos ni datos de clientes. El test espera antes del clic y comprueba el canal correspondiente.
const pending = page.waitForEvent('console', message =>
message.type() === 'error' && message.text() === 'demo diagnostic'
);
await page.getByRole('button', { name: 'Log demo error' }).click();
const message = await pending;
expect(message.text()).toBe('demo diagnostic');Necesitas runner Playwright, expect importado y fixture local. La espera empieza antes del clic para capturar eventos rápidos. Busca una cadena inventada exacta, no todos los errores reales. Registra pageerror por separado.
El console.error controlado produce el mensaje elegido sin pageerror. Un throw programado aparte produce pageerror con el texto esperado. Confirma esta fixture, no toda política de diagnóstico o registro.
Separa recogida y decisión
Recibir un evento no crea por sí solo una aserción fallida. Define qué eventos inesperados bloquean el recorrido, qué mensajes conocidos se permiten y quién responde por excepciones. La lista debe ser estrecha y revisable.
Examina origen y acción antes de asignar causa. La consola puede describir un estado manejado; una excepción puede pertenecer a otro trabajo. Ninguno demuestra por sí solo que se guardó un registro. Conserva las aserciones del resultado.
Si preparación o navegación ocurrieron antes, la lista está incompleta para ese período. Indica la ventana observada. Una lista vacía no certifica una aplicación cuyo inicio u otra página no se observaron.
Protege los diagnósticos
Argumentos y errores pueden contener registros, tokens o URL. Recoge lo necesario y oculta antes de compartir. Poder leer argumentos no autoriza publicarlos. Aquí solo hay cadenas inventadas fijas.
Revisa momento de conexión, filtro y aserción que usa el resultado. AnyTest describe exploración y tests para revisión humana. No se afirma una función concreta de consola. Nombra canal, acción, expectativa y evidencia que falta.
Un listener de una página no describe otra ventana. Vincula los datos con página y período. Examina huecos antes de unir listas para decidir un lanzamiento.
Preguntas comunes
¿console.error siempre es una excepción?
No. Mensajes y excepciones usan canales distintos.
¿Escuchar hace fallar el test?
No. Una aserción o regla debe evaluar la evidencia.