Contenido del curso
Introducción a la Automatización WEB
Introducción a Puppeteer
Conociendo Puppeteer
Conclusión del curso
Hooks
Contenido del curso
Hooks
Juan David Rojas Restrepo
EstudianteMi reacción 🤯 al ver todo el tiempo de prueba y de código que se reduce con la implementación de los hooks.
Oscar David Castro Beltran
EstudianteActualmente beforeEach, beforeAll, afterEach y afterAll no están funcionando :(
Agustin Cammarota Muti
EstudianteAporte de codigo:
const puppeteer = require('puppeteer'); describe('Time outs', () => { let browser; let page; beforeAll(async () => { jest.setTimeout(1000); browser = await puppeteer.launch({ headless: false, defaultViewport: null }); }); afterEach(async () => { page = ''; await browser.close(); }); beforeEach(async () => { page = await browser.newPage(); page.setDefaultTimeout(10000); page.setDefaultNavigationTimeout(10000); await page.goto('https://platzi.com/', { waitUntil: 'networkidle2' }); }); test('should selector', async () => { const selector = await page.waitForSelector('#cms-landings > section > section.Hero > div > p.Hero-content-message'); const validate = await page.evaluate((selector) => selector.innerText, selector); expect(validate).toBe('¿Qué quieres lograr?'); }); });
Jesus Cuadro
EstudianteResumen de la clase :)
let browser let page // Antes de cada test beforeEach(async() => { browser = await puppeteer.launch({ headless: false, defaultViewport: null, }) page = await browser.newPage() }) // Despues de cada test afterEach(async()=>{ await browser.close() }) // Antes de todos los tests beforeAll(async() => { browser = await puppeteer.launch({ headless: false, defaultViewport: null, }) page = await browser.newPage() }) // Despues de todos los tests afterAll(async()=>{ await browser.close() })
Alejandro Yung
EstudianteHola, mi duda es si describe, it, y los hook son de JS o es algo que funciona sólo con jest ?
Javier Fuentes Mora
Profesorson de jest
Mario Alexander Vargas Celis
Estudianteconst puppeteer = require("puppeteer") describe("Extrayendo informacion",()=>{ let browser let page beforeAll(async()=>{ //beforeAll lo inicia antes de las pruebas y beforeEach lo abre en cada prueba browser = await puppeteer.launch({ headless:false, defaultViewport: null, //slowMo: 500 }); page = await browser.newPage(); await page.goto("https://platzi.com", {waitUntil: "networkidle2"}); }); afterAll(async ()=>{ //afterAll lo cierra despuesde las pruebas yafterEach lo ciarra al terminar cada prueba await browser.close(); }) it("Extraer el titulo de la pagina y url", async()=>{ const titulo = await page.title(); const url = await page.url(); console.log("titulo", titulo); console.log("url", url); //await new Promise((resolve) => setTimeout(resolve, 3000)); },35000); it("Extraer la información d eun elemento", async()=>{ await page.waitForSelector("body > main > header > div > nav > ul > li:nth-child(4) > a"); const nombreBoton = await page.$eval("body > main > header > div > nav > ul > li:nth-child(4) > a", (button) => button.textContent); const [button] = await page.$x("/html/body/main/section[1]/a/div/div[2]/div[2]/button"); const propiedad = await button.getProperty("textContent"); const texto = await propiedad.jsonValue(); //console.log("texto", texto); //Segunda Forma const texto2 = await page.evaluate((name)=>name.testContent, button); const button3 = await page.waitForXPath("/html/body/main/section[1]/a/div/div[2]/div[2]/button"); const texto3 = await page.evaluate((name)=>name.testContent, button3); console.log("texto3", texto3); },35000); it("Contar los elementos d euna pagina", async()=>{ const images = await page.$$eval("img",(imagenes) => imagenes.length); console.log("images", images) },35000); },50000); ```const puppeteer = require("puppeteer") describe("Extrayendo informacion",()=>{ let browser let page beforeAll(async()=>{ //beforeAll lo inicia antes de las pruebas y beforeEach lo abre en cada prueba browser = await puppeteer.launch({ headless:false, defaultViewport: null, //slowMo: 500 }); page = await browser.newPage(); await page.goto("https://platzi.com", {waitUntil: "networkidle2"}); }); afterAll(async ()=>{ //afterAll lo cierra despuesde las pruebas yafterEach lo ciarra al terminar cada prueba await browser.close(); }) it("Extraer el titulo de la pagina y url", async()=>{ const titulo = await page.title(); const url = await page.url(); console.log("titulo", titulo); console.log("url", url);   //await new Promise((resolve) => setTimeout(resolve, 3000)); },35000); it("Extraer la información d eun elemento", async()=>{ await page.waitForSelector("body > main > header > div > nav > ul > li:nth-child(4) > a"); const nombreBoton = await page.$eval("body > main > header > div > nav > ul > li:nth-child(4) > a", (button) => button.textContent); const \[button] = await page.$x("/html/body/main/section\[1]/a/div/div\[2]/div\[2]/button"); const propiedad = await button.getProperty("textContent"); const texto = await propiedad.jsonValue(); //console.log("texto", texto); //Segunda Forma const texto2 = await page.evaluate((name)=>name.testContent, button); const button3 = await page.waitForXPath("/html/body/main/section\[1]/a/div/div\[2]/div\[2]/button"); const texto3 = await page.evaluate((name)=>name.testContent, button3); console.log("texto3", texto3); },35000); it("Contar los elementos d euna pagina", async()=>{ const images = await page.$$eval("img",(imagenes) => imagenes.length); console.log("images", images) },35000); },50000);
Diego Alexander Fino Ariza
EstudiantePor algún motivo no me funcionaban los test, ya que aparecía el navegador muy rápido y estaba en blando la solución que me funciono fue definirle un tiempo a beforeEach y afterEach Espero les funcione
let browser let page let globalTime = 10000 beforeEach(async () => { browser = await puppeteer.launch({ headless: false, slowMo: 0, devtools: false, defaultViewport: null }) page = await browser.newPage() }, globalTime) afterEach(async () => { await browser.close(); }, globalTime)