No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Quedan menos de 24 hrs para aprender Ingl茅s, AI y m谩s a precio especial.

Antes: $249

Currency
$209
Suscr铆bete

Termina en:

0 D铆as
0 Hrs
48 Min
51 Seg

Creando la Base Page

14/24
Recursos

Aportes 4

Preguntas 0

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

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

}

La config sola como la vimos en los videos, me trae problemas, dejo unos cambios que me funcionarios:

En el fichero jest-puppeteer.config.js:

const port = process.env.TEST_SERVER_PORT
  ? Number(process.env.TEST_SERVER_PORT)
  : 4444;

process.env.TEST_SERVER_PORT = port.toString();

module.exports = {
  launch: {
    headless: false,
    slowMo: 100,
    launchTimeout: 4000,
    usedPortAction: "kill",
    port,
  },
  browserContext: 'default'
}

En el package.json:
鈥渢est鈥: 鈥渏est --runInBand --forceExit --detectOpenHandles鈥,

<code> 

Click derecho

async rightClick(selector){
        try {
            await page.waitForSelector(selector)
            await page.click(selector, { button: 'right'})
        } catch (error) {
            throw new Error(`Error al dar click en el selector ${selector}`)
        }
    }