You don't have access to this class

Keep learning! Join and start boosting your career

Aprovecha el precio especial y haz tu profesión a prueba de IA

Antes: $249

Currency
$209
Suscríbete

Termina en:

0 Días
10 Hrs
41 Min
42 Seg

Creando la Base Page

14/24
Resources

Contributions 5

Questions 0

Sort by:

Want to see more contributions, questions and answers from the community?

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