From c687f40c206e1d1f874e91dd396c8d68c64c83f2 Mon Sep 17 00:00:00 2001 From: eug-vs Date: Wed, 11 Nov 2020 01:11:01 +0300 Subject: refactor: move click handlers to utils --- src/index.js | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) (limited to 'src/index.js') diff --git a/src/index.js b/src/index.js index 1432923..5345587 100644 --- a/src/index.js +++ b/src/index.js @@ -1,12 +1,7 @@ require('dotenv').config(); const puppeteer = require('puppeteer'); const attendConference = require('./attendConference.js'); - - -const clickAndWait = (page, selector) => Promise.all([ - page.click(selector), - page.waitForNavigation(), -]); +const { clickElementBySelector } = require('./utils.js'); const { EDUFPMI_URL, @@ -15,33 +10,39 @@ const { COURSE_URL } = process.env; -puppeteer.launch({ headless: false }) +puppeteer.launch({ headless: true }) .then(async browser => { const page = await browser.newPage(); // Login - await page.goto(EDUFPMI_URL, { waitUntil: 'networkidle0' }); + await page.goto(EDUFPMI_URL, { waitUntil: 'domcontentloaded' }); await page.type('input#username', EDUFPMI_USERNAME); await page.type('input#password', EDUFPMI_PASSWORD); - await clickAndWait(page, 'button#loginbtn'); + await Promise.all([ + clickElementBySelector(page, 'button#loginbtn'), + page.waitForNavigation() + ]); console.log(`Logged in as ${EDUFPMI_USERNAME}`); // Find the course - await page.goto(COURSE_URL, { waitUntil: 'networkidle0' }); - await clickAndWait(page, 'li.bigbluebuttonbn'); + await page.goto(COURSE_URL); + await Promise.all([ + clickElementBySelector(page, 'li.bigbluebuttonbn'), + page.waitForNavigation() // Wait until the next page loads + ]); // Launch a meeting const conferencePagePromise = new Promise(resolve => browser.on( 'targetcreated', target => resolve(target.page()) )); - await page.click('input#join_button_input'); + await clickElementBySelector(page, 'input#join_button_input'); const conferencePage = await conferencePagePromise; await attendConference(conferencePage); // Fill up the attendance await page.goBack(); - await clickAndWait(page, 'li.attendance'); + await clickElementBySelector(page, 'li.attendance'); }) .catch(e => console.log(e)); -- cgit v1.2.3