From ae94313667b3abe257c0767439c6d3986ba0fde6 Mon Sep 17 00:00:00 2001 From: eug-vs Date: Sat, 14 Nov 2020 17:21:21 +0300 Subject: feat: launch session on schedule for many users --- src/handlers/launchUserSession.js | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 src/handlers/launchUserSession.js (limited to 'src/handlers/launchUserSession.js') diff --git a/src/handlers/launchUserSession.js b/src/handlers/launchUserSession.js new file mode 100644 index 0000000..58dde62 --- /dev/null +++ b/src/handlers/launchUserSession.js @@ -0,0 +1,25 @@ +const puppeteer = require('puppeteer'); +const { clickElementBySelector } = require('./utils.js'); + +const { EDUFPMI_URL } = process.env; + +const launchUserSession = (user, headless = true) => puppeteer.launch({ headless }) + .then(async browser => { + const { username, password } = user; + const page = await browser.newPage(); + + // Login + await page.goto(EDUFPMI_URL, { waitUntil: 'domcontentloaded' }); + await page.type('input#username', username); + await page.type('input#password', password); + await Promise.all([ + clickElementBySelector(page, 'button#loginbtn'), + page.waitForNavigation() + ]); + console.log(`Logged in as ${username}`); + + return browser; + }); + +module.exports = launchUserSession; + -- cgit v1.2.3