CursosEmpresasBlogLiveConfPrecios

Creando helpers de utilidad

Clase 4 de 24 • Curso Avanzado de Automatización de Pruebas con Puppeteer

Clase anteriorSiguiente clase
    jorge luis jaime sánchez

    jorge luis jaime sánchez

    student•
    hace 4 años

    Ejemplo de la función Click usando slector y xpath

    click: async (page, selector, isCssSelector=true, opts={}) => { try { if(isCssSelector){ await page.waitForSelector(selector) await page.click(selector, opts) }else{ await page.waitForXPath(selector) const element = await page.$x(selector) await element[0].click(opts) } } catch (error) { throw new Error(`Error al dar click en el selector: ${selector}`) } }
    Juan Pablo Jaramillo

    Juan Pablo Jaramillo

    student•
    hace 3 años

    Les comparto dos funciones más

    // función clic Derecho clickDerecho: async function(page,selector){ try{ await page.waitForSelector(selector) await page.click(selector,{button: 'right', delay:500}) // da clic derecho en el selector } catch(e){ throw new Error(`Error al dar clic derecho en el selector: ${selector}`) } }, // función cargar texto con XPath getTextXPath: async function(page,XPath){ try{ const textXPath = await page.waitForXPath(XPath) return await page.evaluate((name) => name.textContent, textXPath) // Entrega el texto del elemento } catch(e){ throw new Error(`Error al obtener el texto en el XPathr: ${XPath}`) } }
    Moises Abel Avila  Garcia

    Moises Abel Avila Garcia

    student•
    hace 3 años

    nos enseña mucho

    Jesus Cuadro

    Jesus Cuadro

    student•
    hace 2 años

    Aqui un helper que hice para los input tipo select

    select: async function (page, selector, opts) { try { await page.waitForSelector(selector) return await page.select(selector, opts) } catch (error) { throw new Error( `Error al seleccionar la opcion con el selector ${selector}` ) } },
    Jose Eduardo Miranda Valderrama

    Jose Eduardo Miranda Valderrama

    student•
    hace 2 años

    Debido al nuevo cambio que hubo en Puppeteer, ahora page.waitForXPath(StringSelectorXpath) no es válido, en su lugar se debe usar page.waitForSelector('xpath/'+StringSelectorXpath) por lo que se facilita un poco más la solución del desafío

    Oscar Uriel Zuñiga Mejia

    Oscar Uriel Zuñiga Mejia

    student•
    hace un año

    #home-public > div > div-Header-v2.Header-v2-content.is-dark-header > div.Nav-header > div.Actions2 > a ?

    Encuentran algo raro en este selector?

    Hernan Camilo Jimenez Garcia

    Hernan Camilo Jimenez Garcia

    student•
    hace 4 años

    Profe, tengo el siguiente código en un test:

    it('Extraer la informacion de un elemento', async () =>{ await page.waitForSelector('#home-public > div > div.BaseLayout > header > nav > div.Actionsv2 > a') const nombreButton = await getText(page, '#home-public > div > div.BaseLayout > header > nav > div.Actionsv2 > a', (button) => button.textContent) console.log('nombreButton', nombreButton) }, 30000)

    En el curso pasado me ejecutó sin problemas, pero ahora tengo este error siempre:

    [{ "resource": "/c:/Users/camil/OneDrive/Documents/Platzi/Puppeteer/Projecto_Ejemplo/test/extrayendoInfoHelper.test.js", "owner": "Jest (Projecto_Ejemplo)", "severity": 8, "message": "Extrayendo Informacion > Extraer el título de la página y la URL\n-----\nError: thrown: "Exceeded timeout of 5000 ms for a hook.\nUse jest.setTimeout(newTimeout) to increase the timeout value, if this is a long-running test."", "source": "Jest", "startLineNumber": 38, "startColumn": 1, "endLineNumber": 38, "endColumn": 15 }]

      Javier Fuentes Mora

      Javier Fuentes Mora

      teacher•
      hace 4 años

      Hola, es como si no estuviera reconociendo los el timeout que le pusiste puedes compartirme tu repositorio para tratar de replicarlo ?si ves que me tardo en contestar puedes buscarme en twitter ya que no checo esto diario , @javier_mora94

      Hernan Camilo Jimenez Garcia

      Hernan Camilo Jimenez Garcia

      student•
      hace 4 años

      Esta mañana actualicé el VS Code y mágicamente desapareció el error. Seguiré con el curso y estaré atento a ver si encuentro algo similar en el futuro. Gracias

    Jose Eduardo Miranda Valderrama

    Jose Eduardo Miranda Valderrama

    student•
    hace 2 años

    Debido al nuevo cambio que hubo en Puppeteer, ahora page.waitForXPath(StringSelectorXpath) no es válido, en su lugar se debe usar page.waitForSelector('xpath/'+StringSelectorXpath) por lo que se facilita un poco más la solución del desafío. Ejemplo:

    click: async (page, selector,xpath = false) => { try { if (xpath) { selector = "xpath/" + selector } await page.waitForSelector(selector) await page.click(selector) } catch (error) { console.error(error) throw new Error(`Could not click on selector ${selector}`) } } ```click: async (page, selector,xpath = false) => {        try {            if (xpath) {                selector = "xpath/" + selector            }            await page.waitForSelector(selector)            await page.click(selector)        } catch (error) {            console.error(error)            throw new Error(`Could not click on selector ${selector}`)        }    }
    Moises Abel Avila  Garcia

    Moises Abel Avila Garcia

    student•
    hace 3 años

    me encanta esete curso

Escuelas

  • Desarrollo Web
  • English Academy
  • Marketing Digital
  • Inteligencia Artificial y Data Science
  • Ciberseguridad
  • Liderazgo y Habilidades Blandas
  • Diseño de Producto y UX
  • Contenido Audiovisual
  • Desarrollo Móvil
  • Diseño Gráfico y Arte Digital
  • Programación
  • Negocios
  • Blockchain y Web3
  • Recursos Humanos
  • Finanzas e Inversiones
  • Startups
  • Cloud Computing y DevOps

Platzi y comunidad

  • Platzi Business
  • Live Classes
  • Lanzamientos
  • Executive Program
  • Trabaja con nosotros
  • Podcast

Recursos

  • Manual de Marca

Soporte

  • Preguntas Frecuentes
  • Contáctanos

Legal

  • Términos y Condiciones
  • Privacidad
Reconocimientos
Reconocimientos
Logo reconocimientoTop 40 Mejores EdTech del mundo · 2024
Logo reconocimientoPrimera Startup Latina admitida en YC · 2014
Logo reconocimientoPrimera Startup EdTech · 2018
Logo reconocimientoCEO Ganador Medalla por la Educación T4 & HP · 2024
Logo reconocimientoCEO Mejor Emprendedor del año · 2024
De LATAM conpara el mundo
YoutubeInstagramLinkedInTikTokFacebookX (Twitter)Threads