No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Aprende todo un fin de semana sin pagar una suscripción 🔥

Aprende todo un fin de semana sin pagar una suscripción 🔥

Regístrate

Comienza en:

0D
20H
30M
36S

Creando la Base Page

14/24
Recursos

Aportes 2

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

o inicia sesión.

export default class BasePage {

    async getTitle() {
        return await page.title()
    }

    async getUrl() {
        return await page.url()
    }

    async getText(selector) {
        try {
            await page.waitForSelector(selector)
            return await page.$eval(selector, (elemento) => elemento.textContent)
        }
        catch (error) {
            throw new Error(`Error al obtener el texto del selector: ${selector}`)
        }
    }

    async getAttribute(selector, attribute) {
        try {
            await page.waitForSelector(selector)
            return await page.$eval(selector, (elemento) => elemento.getAttribute(attribute))
        }
        catch (error) {
            throw new Error(`Error al obtener el atributo del selector: ${selector}`)
        }
    }

    async getValue(selector, value) {
        try {
            await page.waitForSelector(selector)
            return await page.$eval(selector, (elemento) => elemento.getValue(value))
        }
        catch (error) {
            throw new Error(`Error al obtener el valor del selector: ${selector}`)
        }
    }

    async getCount(selector) {
        try {
            await page.waitForSelector(selector)
            return await page.$$eval(selector, (elemento) => elemento.length)
        }
        catch (error) {
            throw new Error(`Error al obtener el numero de elementos del selector: ${selector}`)
        }
    }

    async click(selector) {
        try {
            await page.waitForSelector(selector)
            return await page.click(selector)
        }
        catch (error) {
            throw new Error(`Error al dar click al selector: ${selector}`)
        }
    }

    async type(selector, text, opts={}) {
        try {
            await page.waitForSelector(selector)
            return await page.type(selector, text, opts)
        }
        catch (error) {
            throw new Error(`Error al dar escribir en el selector: ${selector}`)
        }
    }

    async doubleClick(selector) {
        try {
            await page.waitForSelector(selector)
            return await page.click(selector, { clickCount: 2 })
        }
        catch (error) {
            throw new Error(`Error al dar doble click al selector: ${selector}`)
        }
    }

    async wait(time) {
        
        return await page.waitForTimeout(time)
        
    }

}

En el último método, la función de waitForTimeout ya no es valida y ahora se recomiendo hacerlo de la siguiente manera

await page.waitForTimeout(time) ❌
await new Promise(r => setTimeout(r, time)) ✔