Crea una cuenta o inicia sesión

¬°Contin√ļa aprendiendo sin ning√ļn costo! √önete y comienza a potenciar tu carrera

Creando helpers de utilidad

4/24
Recursos

Aportes 7

Preguntas 1

Ordenar por:

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

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

nos ense√Īa mucho

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}`)
        }
    }
 
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
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: ```js 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}`)        }    }

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}`
            )
        }
    },

me encanta esete curso