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)
}
}
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?
o inicia sesión.