#javascript #puppeteer #jest-puppeteer
Вопрос:
Я пытаюсь создать класс «Сеансы» с использованием Javascript/Puppeteer, и я абсолютно недостаточно знаком ни с JS, ни с Puppeteer, чтобы заставить его работать.
Я предполагаю, что я просто сталкиваюсь с ограничением асинхронных функций, но, честно говоря, я понятия не имею.
Кукольник успешно открывает браузер и переходит на веб-сайт, но он застревает в начале функции входа в систему «Testing1» и никогда не переходит в «Testing2».
Может ли кто-нибудь посмотреть на приведенный ниже код и сказать мне, в чем я ошибаюсь? Есть 30-40 тестовых классов, и я хотел бы выделить функцию настройки/входа в систему из каждого класса.
Поэтому у меня есть урок «Сеансы», который выглядит так.
import {puppeteer} from "../types.cjs"; import {PuppetOptions} from "../data.js"; export class Session { glPage; glBrowser; constructor(url) { puppeteer.launch(PuppetOptions) .then(async (browser) =gt; { 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(() =gt; { 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(() =gt; { document.querySelector('#okta-signin-submit').click(); }); } }
И я пытаюсь использовать его в своем тестовом классе следующим образом —
describe("GL Flow", () =gt; { before ( function () { let test = new Session(AccountInfo.qa.url) test.login(AccountInfo.qa.username, AccountInfo.qa.password) }); it("Test 1 ", async () =gt; { expect(true) }); it("Test2", async () =gt; { expect(true) }); })
Спасибо вам за всю помощь.