En esta sección, exploraremos los conceptos fundamentales de Playwright, una herramienta poderosa para la automatización de pruebas de aplicaciones web. Comprender estos conceptos te permitirá escribir scripts de prueba más efectivos y eficientes.

  1. Arquitectura de Playwright

Playwright es una biblioteca de Node.js que permite la automatización de navegadores web. Su arquitectura se basa en los siguientes componentes clave:

  • Browsers: Playwright soporta múltiples navegadores, incluyendo Chromium, Firefox y WebKit. Esto permite realizar pruebas en diferentes motores de renderizado.
  • Contextos de Navegador: Un contexto de navegador es una instancia aislada dentro de un navegador. Puedes pensar en él como una ventana o pestaña separada, que no comparte cookies ni caché con otros contextos.
  • Páginas: Una página es una pestaña dentro de un contexto de navegador. Es el objeto principal que interactúa con el contenido web.

  1. Instalación y Configuración Básica

Antes de profundizar en los conceptos, asegúrate de tener Playwright instalado. Si no lo has hecho, sigue estos pasos:

npm init -y
npm install playwright

Esto instalará Playwright y sus dependencias en tu proyecto.

  1. Creación de un Contexto y Página

Para comenzar a trabajar con Playwright, necesitas crear un contexto de navegador y una página. Aquí tienes un ejemplo básico:

import { chromium } from 'playwright';

(async () => {
  // Lanzar un navegador
  const browser = await chromium.launch();
  
  // Crear un nuevo contexto de navegador
  const context = await browser.newContext();
  
  // Abrir una nueva página
  const page = await context.newPage();
  
  // Navegar a una URL
  await page.goto('https://example.com');
  
  // Cerrar el navegador
  await browser.close();
})();

Explicación del Código

  • Lanzar un navegador: chromium.launch() inicia una instancia del navegador Chromium.
  • Crear un nuevo contexto: browser.newContext() crea un contexto aislado.
  • Abrir una nueva página: context.newPage() abre una nueva pestaña dentro del contexto.
  • Navegar a una URL: page.goto('https://example.com') carga la página web especificada.
  • Cerrar el navegador: browser.close() cierra el navegador y libera los recursos.

  1. Interacción con Elementos

Playwright permite interactuar con elementos de la página de manera sencilla. Aquí tienes un ejemplo de cómo hacer clic en un botón:

await page.click('button#submit');

Explicación del Código

  • Selector de CSS: 'button#submit' es un selector CSS que identifica el botón con el id submit.
  • Acción de clic: page.click() simula un clic en el elemento seleccionado.

  1. Esperas y Sincronización

Las pruebas automatizadas a menudo requieren esperar a que ciertos elementos estén disponibles o que ciertas condiciones se cumplan. Playwright proporciona métodos de espera integrados:

await page.waitForSelector('h1');

Explicación del Código

  • Esperar un selector: page.waitForSelector('h1') espera a que un elemento <h1> esté presente en la página antes de continuar.

Ejercicio Práctico

Objetivo: Escribir un script que navegue a una página web, haga clic en un botón y verifique que un elemento específico esté presente.

Instrucciones

  1. Crea un nuevo script de Playwright.
  2. Navega a https://example.com.
  3. Haz clic en un botón con el id submit.
  4. Espera a que un elemento <h1> esté presente.
  5. Verifica que el texto del elemento <h1> sea "Example Domain".

Solución

import { chromium } from 'playwright';

(async () => {
  const browser = await chromium.launch();
  const context = await browser.newContext();
  const page = await context.newPage();
  
  await page.goto('https://example.com');
  await page.click('button#submit');
  await page.waitForSelector('h1');
  
  const headingText = await page.textContent('h1');
  if (headingText === 'Example Domain') {
    console.log('Test passed!');
  } else {
    console.log('Test failed.');
  }
  
  await browser.close();
})();

Retroalimentación

  • Error Común: Olvidar cerrar el navegador al final del script puede llevar a un uso innecesario de recursos.
  • Consejo: Usa await para todas las operaciones asíncronas para asegurar que se completen antes de continuar.

Conclusión

En esta sección, hemos cubierto los conceptos básicos de Playwright, incluyendo la creación de contextos y páginas, la interacción con elementos y el manejo de esperas. Estos fundamentos son esenciales para escribir pruebas automatizadas efectivas. En el próximo módulo, profundizaremos en la escritura de scripts de prueba más complejos utilizando TypeScript.

Playwright con TypeScript: De Principiante a Avanzado

Módulo 1: Introducción a Playwright y TypeScript

Módulo 2: Comenzando con Playwright

Módulo 3: Fundamentos de Playwright y TypeScript

Módulo 4: Funciones Avanzadas de Playwright

Módulo 5: Estrategias de Automatización de Pruebas

Módulo 6: Técnicas Avanzadas de TypeScript

Módulo 7: Aplicaciones Reales de Playwright

Módulo 8: Conclusión del Curso y Próximos Pasos

© Copyright 2024. Todos los derechos reservados