Agustin Cammarota Muti
Para evitar problemas de time out por Jest:
1- Crear un fichero jest.config.js en la raiz del proyecto. 2- Poner la siguiente configuración:
module.exports = { testTimeout: 30000 };
Jesus Cuadro
Muchas gracias
**Aquí les comparto el código para que los prueben, que se realizaron sin embargo me queda la duda apuntando en Google no existe un SELECTOR es como si tomara una captura de pantalla general **
const puppeteer = require('puppeteer'); describe('Capturas de pantalla', () => { let browser; let page; beforeAll(async () => { browser = await puppeteer.launch({ headless: false, defaultViewport: null, }); const context = await browser.createIncognitoBrowserContext();//MODO INCOGNITO comportamiento evadir modo incognito page = await context.newPage() //Aqui apuntamos la pantalla de la cual queremos apuntar await page.goto('https://www.google.com/', { waitUntil: 'networkidle0' }); }, 10000); afterAll(async () => { await browser.close(); }); // Esta sección es para realizar la captura de pantalla general test ('Captura de pantalla Completa',async () => { await page.screenshot({ path:'./capturaDePantalla.png', fullPage:true }) },350000) // Esta sección es para realizar la captura de pantalla de una area por ellos la declaración de x-y, width y height test ('Captura de pantalla seleccionando un area',async () => { await page.screenshot({ path:'./capturaDePantallaSeleccionandoUnArea.png', clip:{ x: 0, y: 0, width:500, height:500 } }) },350000) // Esta sección es para realizar la captura de pantalla pero transparente test ('Captura de pantalla con fondo transparente',async () => { await page.evaluate(()=>(document.body.style.background = 'transparent')) await page.screenshot({ path:'./capturaDePantallaTransparente.png', omitBackground: true }) },350000) // Esta sección es para realizar la captura de pantalla a un elemento en especifico copiando un "SELECTOR" test ('Captura de pantalla a un elemento',async () => { const element = await page.waitForSelector('body > div.L3eUgb > div.o3j99.LLD4me.yr19Zb.LS8OJ > div > img') await page.screenshot({ path:'./capturaDePantallaDeUnElemento.png', }) },350000) });
Agustin Cammarota Muti
Para evitar problemas de time out por Jest:
1- Crear un fichero jest.config.js en la raiz del proyecto. 2- Poner la siguiente configuración:
module.exports = { testTimeout: 30000 };
Jesus Cuadro
Muchas gracias
CODIGO COMPLETO DE LA CLASE, AL FINAL SI SE ME PRESENTO MUCHOS ERROR YA QUE PUPPETER SE HA ACTUALIZADO.
jest.setTimeout(30000);
const puppeteer = require('puppeteer');
describe('capturas de pantalla', () => {
let browser;
let page;
beforeEach(async () => {
browser = await puppeteer.launch({
headless: true,
defaultViewport: null,
});
page = await browser.newPage();
await page.goto('https://google.com', { waitUntil: 'networkidle0' });
});
afterEach(async () => {
try {
if (page) await page.close();
if (browser) await browser.close();
} catch (error) {
console.error('Error cerrando recursos:', error);
}
});
test('Captura de pantalla Completa', async () => {
await page.screenshot({path: 'captura_completa.png', fullPage: true });
await new Promise(resolve => setTimeout(resolve, 2000)); // espera 2s entre recargas
});
test('Captura de pantalla Seleccionando un area', async () => {
await page.screenshot({path:'capturaDePantallaSeleccionandoUnArea.png', clip: { x: 0, y: 0, width: 500, height: 500 } });
await new Promise(resolve => setTimeout(resolve, 2000)); // espera 2s entre recargas
});
test('Captura de pantalla Con Fondo Transparente', async () => {
await page.evaluate(() => {
document.body.style.background = 'transparent';
});
await page.screenshot({path:'capturaDePantallaConFondoTransparente.png', omitBackground: true });
await new Promise(resolve => setTimeout(resolve, 2000)); // espera 2s entre recargas
});
test('Captura de pantalla Con Fondo Transparente', async () => {
await page.evaluate(() => {
document.body.style.background = 'transparent';
});
await page.screenshot({path:'capturaDePantallaConFondoTransparente.png', omitBackground: true });
await new Promise(resolve => setTimeout(resolve, 2000)); // espera 2s entre recargas
});
test('Captura de pantalla a un Elemento', async () => {
// Captura de depuración para ver qué carga realmente la página
await page.screenshot({ path: 'debug_google.png', fullPage: true });
// Lista todos los ids presentes en la página
const ids = await page.evaluate(() => Array.from(document.querySelectorAll('[id]')).map(e => e.id));
console.log('IDs encontrados en la página:', ids);
let elemento = await page.waitForSelector('#logo', { timeout: 10000 });
await page.screenshot({
path: 'capturaDePantallaAUnElemento.png',
clip: await elemento.boundingBox()
});
await new Promise(resolve => setTimeout(resolve, 2000)); // espera 2s entre recargas
});
});
Julianny Caicedo
jest.setTimeout(30000);
const puppeteer = require('puppeteer');
describe('capturas de pantalla', () => {
let browser;
let page;
beforeEach(async () => {
browser = await puppeteer.launch({
headless: false,
defaultViewport: null,
});
page = await browser.newPage();
await page.goto('https://google.com', { waitUntil: 'networkidle0' });
});
afterEach(async () => {
try {
if (page) await page.close();
if (browser) await browser.close();
} catch (error) {
console.error('Error cerrando recursos:', error);
}
});
test('Captura de pantalla Completa', async () => {
await page.screenshot({path: 'captura_completa.png', fullPage: true });
await new Promise(resolve => setTimeout(resolve, 2000)); // espera 2s entre recargas
});
test('Captura de pantalla Seleccionando un area', async () => {
await page.screenshot({path:'capturaDePantallaSeleccionandoUnArea.png', clip: { x: 0, y: 0, width: 500, height: 500 } });
await new Promise(resolve => setTimeout(resolve, 2000)); // espera 2s entre recargas
});
});
Julianny Caicedo
CÓDIGO ACTUALIZADO
jest.setTimeout(30000);
const puppeteer = require('puppeteer');
describe('capturas de pantalla', () => {
let browser;
let page;
beforeEach(async () => {
browser = await puppeteer.launch({
headless: false,
defaultViewport: null,
});
page = await browser.newPage();
await page.goto('https://google.com', { waitUntil: 'networkidle0' });
});
afterEach(async () => {
try {
if (page) await page.close();
if (browser) await browser.close();
} catch (error) {
console.error('Error cerrando recursos:', error);
}
});
test('Captura de pantalla Completa', async () => {
await page.screenshot({path: 'captura_completa.png', fullPage: true });
await new Promise(resolve => setTimeout(resolve, 2000)); // espera 2s entre recargas
});
});
David steven Abril Pulecio
Por que varias de estas funciones no son automaticamente agregadas?
ejemplo:
No deberia auto sugerir el omitBackground? me obliga a escribirlo por completo
Laura Ivonne Moreno
muchas gracias!! que chulada
Moises Abel Avila Garcia
saludos
Moises Abel Avila Garcia
exelente
Moises Abel Avila Garcia
esta clase es muy recomendada aprendes mucho