Timeouts
Clase 13 de 15 • Curso de Automatización de Pruebas con Puppeteer
Contenido del curso
Clase 13 de 15 • Curso de Automatización de Pruebas con Puppeteer
Contenido del curso
Leonardo Angelit Gálvez
Jesus Cuadro
ZANONI ALFREDO SALAS TOBÓN
Mario Alexander Vargas Celis
Los timeouts se pueden configurar de las siguientes maneras:
Con jest.setTimeout(milisegundos), importante colocarlo fuera del it.
Con los setDefaultTimeout y setDefaultNavigationTimeout propios de puppeteer dentro del it
Añadiendo un timeout a una función específica, pasando un objeto que incluye timeout: milisegundos
Añadiendo los milisegundos directamente como parámetro en el it
Muchas gracias
Configuración de Timeouts en Puppeteer En Puppeteer, gestionar los tiempos de espera es crucial para lidiar con situaciones donde es necesario esperar la presencia de un elemento, la carga completa de una página, o realizar otras operaciones asíncronas.
const puppeteer = require('puppeteer'); describe('Configuración de Timeouts en Puppeteer', () => { let browser; let page; beforeAll(async () => { // Iniciar el navegador antes de todas las pruebas browser = await puppeteer.launch({ headless: false, defaultViewport: null }); }); afterAll(async () => { // Cerrar el navegador después de todas las pruebas await browser.close(); }); beforeEach(async () => { // Crear una nueva página antes de cada prueba page = await browser.newPage(); }); afterEach(() => { // Limpiar la página después de cada prueba page = null; }); it('Timeout Global para la Página con page.setDefaultTimeout', async () => { // Configurar el tiempo de espera global para la página page.setDefaultTimeout(5000); // 5 segundos // Realizar operaciones que utilizarán el timeout global await page.goto('https://example.com'); // Otras operaciones... // Restaurar a timeout predeterminado page.setDefaultTimeout(30000); // 30 segundos por defecto }); it('Timeout de Navegación Específico con page.setDefaultNavigationTimeout', async () => { // Configurar el tiempo de espera específico para operaciones de navegación page.setDefaultNavigationTimeout(3000); // 3 segundos // Realizar operaciones de navegación que utilizarán el timeout específico await page.goto('https://example.com'); // Otras operaciones... // Restaurar a timeout de navegación predeterminado page.setDefaultNavigationTimeout(30000); // 30 segundos por defecto }); it('Timeout Específico para una Operación con waitUntil', async () => { // Especificar un tiempo de espera para esta operación particular const timeout = 2000; // 2 segundos // Realizar una operación de navegación con timeout específico await page.goto('https://example.com', { waitUntil: 'domcontentloaded', timeout }); // Otras operaciones... }); it('Timeout con page.waitForFunction', async () => { // Configurar un tiempo de espera para page.waitForFunction const timeoutInMilliseconds = 5000; // 5 segundos // Esperar hasta que se cumpla la condición o se alcance el timeout await page.waitForFunction(() => { // Condición a esperar return document.querySelector('#miElemento'); }, { timeout: timeoutInMilliseconds }); }); it('Timeout con Jest.setTimeout', async () => { // Configurar el timeout global para esta prueba específica jest.setTimeout(10000); // 10 segundos // Realizar operaciones que utilizarán el timeout global await page.goto('https://example.com'); // Otras operaciones... }); });
## Timeouts ```javascript const puppeteer = require("puppeteer") describe("tomeout",()=>{ jest.setTimeout(10000); it("uso de timeout", async()=>{ const browser = await puppeteer.launch({ headless:false, defaultViewport: null, //slowMo: 500 }); const page = await browser.newPage(); page.setDefaultTimeout(10000); page.setDefaultNavigationTimeout(10000); await page.goto("https://platzi.com", {waitUntil: "networkidle2"}); const images = await page.$$eval("img",(imagenes) => imagenes.length,{ timeout:30000 }); console.log("images", images) await browser.close(); }); }) ``` ````## Timeouts ```javascript const puppeteer = require("puppeteer") describe("tomeout",()=>{   jest.setTimeout(10000);   it("uso de timeout", async()=>{       const browser = await puppeteer.launch({   headless:false,   defaultViewport: null,    //slowMo: 500   });   const page = await browser.newPage();   page.setDefaultTimeout(10000);   page.setDefaultNavigationTimeout(10000);   await page.goto("https://platzi.com", {waitUntil: "networkidle2"});       const images = await page.$$eval("img",(imagenes) => imagenes.length,{   timeout:30000   });   console.log("images", images)   await browser.close();   }); }) ```