Estoy buscando una manera de escribir comandos personalizados en Playwright como se hace en Cypress . Playwright Issues tiene una página relacionada, pero nunca he visto ningún ejemplo de código.
Estoy trabajando en un caso de prueba en el que intento mejorar la reutilización del código. Aquí está el código:
import { test, chromium } from '@playwright/test'; config(); let context; let page; test.beforeEach(async () => { context = await chromium.launchPersistentContext( 'C:\\Users\\User\\AppData\\Local\\Microsoft\\Edge\\User Data\\Default', { headless: false, executablePath: 'C:\\Program Files (x86)\\Microsoft\\Edge\\Application\\msedge.exe', } ); page = await context.newPage(); await page.goto('http://localhost:3000/'); }); test.afterEach(async () => { await page.close(); await context.close(); }); test('Sample test', async () => { await page.click('text=Open popup'); await page.click('_react=Button >> nth=0'); await page.click('text=Close popup'); });Estoy tratando de crear una función que llamará a los ganchos test.beforeEach() y test.afterEach() y el código dentro de ellos.
En la página de problemas de Playwright, dice que necesito moverlo a un módulo de nodo separado y luego podría usarlo, pero me cuesta entender cómo hacerlo.
El ejemplo que está dando se puede resolver implementando un accesorio personalizado. Los accesorios son la solución de @playwright/test para personalizar/ampliar el marco de prueba. Puede definir sus propios objetos (similares al navegador, contexto, página) que inyecta en su prueba, para que la prueba tenga acceso a ellos. Pero también pueden hacer cosas antes y después de cada prueba, como establecer condiciones previas y eliminarlas. También puede anular los accesorios existentes.
Para obtener más información, incluidos ejemplos, consulte aquí: https://playwright.dev/docs/test-fixtures