QA The Other WayGarantía de calidad para la era de las pruebas escritas por IA. QA The Other Way.
Práctico QA

Siga la ventana emergente que abrió su acción.

Vincule una nueva ventana a su acción iniciadora, luego verifique la página deseada en lugar de una pestaña arbitraria.

7 min de lecturaQA The Other Way
Una ventana principal creada conectada a la ventana emergente prevista.
Ilustración editorial de autor.
Vídeo ilustrativo de este artículo. Texto en pantalla en inglés; seleccione subtítulos para este idioma.

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

Vincule una nueva ventana a su acción iniciadora, luego verifique la página deseada en lugar de una pestaña arbitraria.
Demostración local ilustrativa con entradas inventadas, no una interfaz de cliente o proveedor.

Un botón de ayuda abre una nueva ventana. La prueba sigue leyendo la página original o toma la última pestaña. Puede pasar cuando hay otra ventana presente y fallar cuando cambia el entorno. El contrato que falta es el de propiedad: ¿qué página creó esta acción?

Esta guía sigue la documentación de las páginas de Playwright con una ventana de soporte local inventada. No es un inicio de sesión de cuenta ni un flujo de pago externo. El objetivo es adjuntar una ventana emergente a la acción inicial, inspeccionar la página que realmente recibió y evitar convertir el orden de tabulación en evidencia.

Espera en la página propietaria de la acción.

Inicie la ventana emergente y espere antes de hacer clic en el control que la abre. Luego espere esa misma promesa y conserve la referencia de página devuelta. Una nueva ventana rápida no debería escapar de la espera, y una pestaña existente diferente no debería convertirse en el objetivo accidental.

const pendingPopup = page.waitForEvent('popup');
await page.getByRole('button', { name: 'Open demo help' }).click();
const popup = await pendingPopup;
await expect(popup.getByRole('heading', { name: 'Demo help' })).toBeVisible();

Este ejemplo supone que la aplicación local abre una ventana emergente con un encabezado útil. No crea un encabezado ni garantiza que cada política del navegador permita todo tipo de ventanas nuevas. Coloque al oyente antes de la acción y luego verifique el contenido real esperado.

La guía de páginas también describe cómo escuchar una nueva página en el contexto del navegador. Ese evento más amplio es útil cuando se desconoce la página de inicio. Cuando se conoce, un evento emergente a nivel de página proporciona una relación más clara. Limite la espera al comportamiento en lugar de adoptar el oyente más amplio de forma predeterminada.

Una página nueva aún no es el destino correcto

Recibir un objeto Página prueba que se creó una ventana. No prueba el contenido previsto cargado o que la navegación finalizó en un origen permitido. Una ventana emergente puede mostrar un error, una redirección o un documento diferente. Verifique una URL significativa o una condición de página con los requisitos reales del producto.

Para la demostración, un título es suficiente para demostrar la propiedad. Para un flujo real, utilice el destino esperado aprobado y la información que la persona debe recibir. No trate ningún encabezado visible como un éxito. No ingrese credenciales en una página inesperada porque se abrió en el momento adecuado.

Utilice la referencia emergente devuelta para afirmaciones y acciones. Evite confiar en el orden de context.pages(). Es posible que el contexto ya contenga una pestaña de notificación, una ventana de ayuda anterior o páginas creadas por la aplicación. Una suposición de la última pestaña es una suposición oculta en un código que de otro modo sería legible.

Mantenga la navegación y la finalización del negocio por separado

Un documento que aparece en otra ventana puede ser sólo un paso en el viaje. Un artículo de soporte debe contener la orientación prometida. Un informe generado debe corresponder al registro seleccionado. Una ventana de confirmación debería reflejar la operación real. El evento de nueva ventana no puede probar ninguno de esos resultados comerciales por sí solo.

Utilice registros de puesta en escena inventados o aprobados mientras desarrolla la prueba. Si la ventana emergente ingresa a un servicio de terceros, establezca el límite de prueba permitido antes de actuar allí. Una referencia conveniente del navegador no es permiso para enviar un formulario, gastar dinero o divulgar datos de la cuenta a otro sitio.

Para flujos de trabajo que finalizan en la ventana original, conserve ambas referencias y asígneles un nombre. Verifique el siguiente estado de la página original después de la acción emergente aprobada. No cierre accidentalmente la página principal para simplificar la limpieza. Una prueba debe preservar la relación que experimenta una persona.

Decidir cómo se informa el comportamiento sin ventanas emergentes

Un producto puede reutilizar intencionadamente la misma pestaña en un dispositivo móvil o en una configuración diferente. Confirme ese comportamiento antes de solicitar una ventana emergente en todas partes. Si la especificación promete una ventana emergente y no llega ninguna, una espera de evento limitada debería fallar con ese límite claro en lugar de colgarse indefinidamente.

No solucione el fallo haciendo clic repetidamente. Los clics repetidos pueden crear varias ventanas cuando la solicitud original es simplemente lenta. Inspeccione si se produjo el clic, si el navegador bloqueó la acción y si la aplicación cambió su diseño de navegación. La corrección correcta depende de esa evidencia.

Cierre la ventana emergente local cuando la prueba haya terminado de inspeccionarla. Conservar las pruebas necesarias según la política de privacidad de la suite. Las URL de las ventanas, los títulos y las capturas de pantalla pueden contener detalles de registros privados, por lo que una captura de pantalla principal limpia no hace que cada ventana emergente adjunta sea segura para distribuir.

AnyTest describe la exploración de aplicaciones y las pruebas de un extremo a otro que revisan los humanos. Un revisor puede preguntar a qué ventana se dirige realmente un recorrido generado y cómo demuestra esa relación. No se afirma ninguna implementación de ventana emergente específica en AnyTest. El resultado útil es una verificación explícita del propietario y el destino de la página, no una colección más grande de pestañas.

Preguntas comunes

¿Debería una prueba utilizar la última pestaña?

No cuando la acción iniciadora puede vincularse a un evento emergente. Conserve la referencia de la página devuelta.

¿Es un evento emergente el resultado final?

No. Verifique el destino/contenido previsto y el resultado comercial por separado.

Fuentes