En aquesta secció, explorarem els conceptes fonamentals de Playwright, una eina poderosa per a l'automatització de navegadors. Aquests conceptes són essencials per crear scripts de prova efectius i robustos. Assegura't de comprendre bé cada punt abans de passar als temes més avançats.

  1. Arquitectura de Playwright

Playwright és una biblioteca que permet controlar navegadors web mitjançant codi. Els seus components principals inclouen:

  • Browser: Representa una instància del navegador. Playwright suporta múltiples navegadors com Chromium, Firefox i WebKit.
  • Context: Un context de navegador és similar a una pestanya o finestra del navegador, però aïllat. Permet executar proves en paral·lel sense interferències.
  • Page: Una pàgina dins d'un context. És l'objecte principal que utilitzaràs per interactuar amb el contingut web.

  1. Instal·lació i Configuració

Abans de començar a treballar amb Playwright, assegura't que està instal·lat correctament. Si encara no ho has fet, pots instal·lar-lo amb:

npm install playwright

  1. Creant un Navegador i una Pàgina

Per començar a utilitzar Playwright, primer has de crear una instància del navegador i obrir una pàgina. Aquí tens un exemple bàsic:

import { chromium } from 'playwright';

(async () => {
  // Inicia el navegador
  const browser = await chromium.launch();
  
  // Crea un nou context de navegador
  const context = await browser.newContext();
  
  // Obre una nova pàgina
  const page = await context.newPage();
  
  // Navega a una URL
  await page.goto('https://example.com');
  
  // Tanca el navegador
  await browser.close();
})();

Explicació del Codi

  • chromium.launch(): Inicia una nova instància del navegador Chromium.
  • browser.newContext(): Crea un nou context de navegador.
  • context.newPage(): Obre una nova pàgina dins del context.
  • page.goto('https://example.com'): Navega a la URL especificada.
  • browser.close(): Tanca el navegador.

  1. Interactuant amb Elements de la Pàgina

Playwright proporciona una API rica per interactuar amb elements de la pàgina. Pots fer clic, escriure text, i molt més. Aquí tens un exemple de com fer clic en un botó:

await page.click('text=Submit');

Explicació del Codi

  • page.click('text=Submit'): Cerca un element que contingui el text "Submit" i fa clic en ell.

  1. Esperes i Sincronització

Les proves sovint necessiten esperar que certs elements estiguin disponibles o que es completi una acció. Playwright gestiona això amb esperes automàtiques, però també pots utilitzar esperes explícites:

await page.waitForSelector('text=Welcome');

Explicació del Codi

  • page.waitForSelector('text=Welcome'): Espera que un element amb el text "Welcome" estigui present a la pàgina.

Exercici Pràctic

Objectiu: Escriu un script que obri una pàgina, faci clic en un enllaç i verifiqui que una nova pàgina es carrega correctament.

Pas a Pas

  1. Inicia el navegador i obre una pàgina.
  2. Navega a https://example.com.
  3. Fes clic en un enllaç que porti a una altra pàgina.
  4. Verifica que la nova pàgina conté un element específic.

Solució

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('text=More information');
  await page.waitForSelector('text=Example Domain');
  
  console.log('Test passed: New page loaded successfully');
  
  await browser.close();
})();

Conclusió

Ara que has après els conceptes bàsics de Playwright, estàs preparat per començar a escriure scripts de prova més complexos. A mesura que avancis, recorda que la clau per a l'automatització efectiva és comprendre bé com interactuar amb els elements de la pàgina i gestionar les esperes de manera adequada. En el següent tema, explorarem com executar proves de Playwright.

Dramaturg amb TypeScript: De Principiant a Avançat

Mòdul 1: Introducció a Playwright i TypeScript

Mòdul 2: Començant amb Playwright

Mòdul 3: Fonaments de Playwright i TypeScript

Mòdul 4: Funcions Avançades de Playwright

Mòdul 5: Estratègies d'Automatització de Proves

Mòdul 6: Tècniques Avançades de TypeScript

Mòdul 7: Aplicacions Reals de Playwright

Mòdul 8: Conclusió del Curs i Propers Passos

© Copyright 2024. Tots els drets reservats