Estoy aprendiendo a usar Playwright con experiencia en Selenium y Cypress y estoy probando la herramienta para ver cómo funciona en una prueba simple:
test.describe('IMDB:', () => { const movieName = 'Forrest Gump'; await page.goto('https://www.imdb.com/'); await page.fill('#suggestion-search', movieName); expect(await page.textContent('data-testid=search-result--const')).toContain(movieName); }); });Simplemente va a IMDB, busca una película y luego afirma que se encuentra la película.
También he creado un archivo de configuración en el que he definido que quiero usar varios navegadores:
const config: PlaywrightTestConfig = { timeout: 30000, use: { headless: false }, projects: [ { name: 'Desktop Chromium', use: { browserName: 'chromium', viewport: { width: 1280, height: 720 }, }, }, { name: 'Desktop Firefox', use: { browserName: 'firefox', viewport: { width: 1280, height: 720 }, } }, { name: 'Mobile Chrome', use: devices['Pixel 5'], }, ], }; export default config;Sin embargo, cuando ejecuto la prueba, debido a que la barra de búsqueda está oculta detrás de un botón en el sitio móvil. La prueba de Mobile Chrome falla.
¿Hay alguna manera de que pueda hacer una prueba condicional para decir si se está utilizando un dispositivo en particular, realice un paso adicional?
puede acceder a browserName desde test() haciendo
import { test, expect } from '@playwright/test' test('Your test', async ({ page, browserName }) => { if (browserName === 'webkit') { // Do Something // Rest of the test code }) Pero en su caso, parece que desea omitir la prueba si se trata de una ventana gráfica móvil, por lo que puede usar la prueba. skip() echa un vistazo aquí: https://playwright.dev/docs/api/class-test#test-skip-2