14.4 ¿Qué es Playwright?

Playwright es una nueva opción para crear tus pruebas desarrollada por Microsoft con algunos programadores de puppeter, otro framework de testing creado por google.

Puedes realizar tus pruebas con C#, javascript, typescript, python o java. Soporta los navegadores Chrome y Microsoft Edge (con Chromium), Safari (con WebKit) y Firefox.

Lo puedes instalar con el comando npm para nodeJS.

npm i -D playwright

O con el comando dotnet tool para c#.

dotnet tool install --global Microsoft.Playwright.CLI

Ejemplo

Un ejemplo básico con javascript es el siguiente:

const { webkit } = require('playwright');

(async () => {
  const browser = await webkit.launch();
  const page = await browser.newPage();
  await page.goto('http://www.google.com');
  await page.screenshot({ path: `example.png` });
  await browser.close();
})();

Generar scripts

Puedes generar tus scripts con el comando playwright codegen seguido de la página que deseas probar.

playwright codegen wikipedia.org

Se abrirá un navegador y te va a generar el codigo por cada acción que realices

Este es el código generado

using Microsoft.Playwright;
using System;
using System.Threading.Tasks;
class Program
{
    public static async Task Main()
    {
        using var playwright = await Playwright.CreateAsync();
        await using var browser = await playwright.Chromium.LaunchAsync(new BrowserTypeLaunchOptions
        {
            Headless = false,
        });
        var context = await browser.NewContextAsync();
        // Abre una nueva página
        var page = await context.NewPageAsync();
        // Navega a la página https://www.wikipedia.org/
        await page.GotoAsync("https://www.wikipedia.org/");
        // Da click en un input con el nombre search
        await page.ClickAsync("input[name=\"search\"]");
        // Escribe la palabra Testing al input con el nombre search
        await page.FillAsync("input[name=\"search\"]", "Testing");
        // Da clic en el texto Pruebas de Software
        await page.ClickAsync("text=Pruebas de software");
        // Assert.AreEqual("https://es.wikipedia.org/wiki/Pruebas_de_software", page.Url);
    }
}

Ventajas y Desventajas

Ventajas:

  • Incluye por defecto auto waits por lo que tienes que agregar código para esperar a que un elemento este visible.

  • Puedes simular la llamada al servicio rest y sustituir la respuesta por datos fijos.

  • Al igual que selenium, cypress puedes grabar los pasos y te genera el código.

  • Si soporta múltiples dominios, iframes, tabs, navegadores.

  • También graba videos y screenshots de los tests

  • Es rápido y te permite reutilizar el contexto del browser

Desventajas:

  • No soporta Internet Explorer 11 ni Edge no basado en Chromium.

  • Tiene poco tiempo que salió por lo tanto no hay tanta información, cursos

Tiene soporte en Discord

Last updated