Estoy tratando de crear una clase de "Sesiones" usando Javascript/Puppeteer y no estoy lo suficientemente familiarizado con JS o Puppeteer para que funcione.
Me imagino que me estoy encontrando con una limitación con las funciones asíncronas, pero, sinceramente, no tengo ni idea.
Titiritero abre con éxito el navegador y va al sitio web, pero se atasca al comienzo de la función de inicio de sesión "Prueba1" y nunca llega a "Prueba2"
¿Alguien puede mirar el siguiente código y decirme dónde me estoy equivocando? Hay 30-40 clases de prueba y me gustaría abstraer la función de configuración/inicio de sesión de cada clase.
Así que tengo una clase de "Sesiones" que se parece a esto.
import {puppeteer} from "../types.cjs"; import {PuppetOptions} from "../data.js"; export class Session { glPage; glBrowser; constructor(url) { puppeteer.launch(PuppetOptions) .then(async (browser) => { this.glBrowser = browser this.glPage = await browser.newPage(); await this.glPage.goto(url); }); } async login(username, password) { console.log("testing") await this.glPage.waitForSelector('#idp-discovery-username') console.log("testing2") await this.glPage.type("#idp-discovery-username", username); await this.glPage.evaluate(() => { document.querySelector('#idp-discovery-submit').click(); }); await this.glPage.waitForSelector('#okta-signin-password') await this.glPage.type("#okta-signin-password", password) await this.glPage.evaluate(() => { document.querySelector('#okta-signin-submit').click(); }); } }Y estoy tratando de usarlo en mi clase de prueba de la siguiente manera:
describe("GL Flow", () => { before ( function () { let test = new Session(AccountInfo.qa.url) test.login(AccountInfo.qa.username, AccountInfo.qa.password) }); it("Test 1 ", async () => { expect(true) }); it("Test2", async () => { expect(true) }); })Gracias por toda la ayuda.