No tienes acceso a esta clase

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

No se trata de lo que quieres comprar, sino de quién quieres ser. Invierte en tu educación con el precio especial

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

11 Días
22 Hrs
0 Min
28 Seg

Creando la Base Page

14/24
Recursos

Aportes 5

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

}

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

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:
“test”: “jest --runInBand --forceExit --detectOpenHandles”,

<code> 
```js //to select an option within an html element type: select async selectType (page, selector, opts) { try { await page.waitForSelector(selector) return await page.select(selector, opts) } catch (error) { throw new error(`Error when trying to select an option within the selector: ${selector}`) } } ```//to select an option within an html element type: select async selectType (page, selector, opts) {    try {        await page.waitForSelector(selector)        return await page.select(selector, opts)    } catch (error) {        throw new error(`Error when trying to select an option within the selector: ${selector}`)    }}