No tienes acceso a esta clase

¬°Contin√ļa aprendiendo! √önete y comienza a potenciar tu carrera

Timeouts

13/15
Recursos

Aportes 3

Preguntas 0

Ordenar por:

¬ŅQuieres ver m√°s aportes, preguntas y respuestas de la comunidad?

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

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...
  });
});

````js ## 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(); }); }) ```