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