Este repositorio contiene la solución a una prueba técnica de APAP QA Coding Challenge, utilizando Playwright con TypeScript y aplicando el patrón Page Object Model (POM).
Se automatizaron los siguientes flujos de trabajo del sitio:
-
https://the-internet.herokuapp.com/nested_frames
- Obtener e imprimir los textos contenidos en los diferentes iframes anidados.
-
https://the-internet.herokuapp.com/windows
- Abrir una nueva ventana, cambiar el contexto y validar el texto mostrado.
El escenario correspondiente a la URL:
https://the-internet.herokuapp.com/tinymce
no pudo ser automatizado debido a una limitación externa del editor TinyMCE.
Actualmente, el editor se encuentra en modo solo lectura, mostrando el siguiente mensaje:
"TinyMCE is in read-only mode because you have no more editor loads available this month."
Debido a esta restricción:
- No es posible borrar ni escribir texto.
- No se pueden aplicar estilos (negrita, color, alineación).
- El comportamiento no depende del código de automatización.
El escenario fue analizado y documentado, pero no automatizado, ya que la funcionalidad requerida no está disponible para interacción en el entorno actual.
En un entorno productivo o con un editor habilitado, el escenario puede ser automatizado correctamente utilizando Playwright mediante el acceso al iframe del editor.
- ✅ Playwright Test
- ✅ TypeScript
- ✅ Page Object Model (POM)
- ✅ Smoke Test
- ✅ Regression Test
- ✅ Reporte HTML nativo de Playwright
Los selectores se encuentran encapsulados en los Page Objects, manteniendo los tests limpios y fáciles de mantener.
tests/ │ ├── smoke/ # Pruebas Smoke ├── regression/ # Pruebas de Regresión └── pages/ # Page Object Model
git clone https://github.com/tu-usuario/tu-repositorio.git
cd tu-repositorio
- Node.js 18 o superior
npm installnpx playwright install npx playwright testnpx playwright test tests/smokenpx playwright test tests/regressionnpx playwright test windows.spec.tsnpx playwright test --headednpx playwright show-reportEl sitio https://the-internet.herokuapp.com es un entorno público de demostración y puede presentar latencia o tiempos de carga elevados en ciertos momentos.
Para mitigar posibles fallos intermitentes:
- Se configuraron timeouts explícitos en la navegación.
- Se implementaron esperas basadas en la presencia de elementos clave.
Aun así, en ejecuciones manuales o automatizadas podrían presentarse fallos ocasionales debido a la disponibilidad del entorno externo.