Using Puppeteer to access list of banks

To have an automated way of getting the list of question banks and their IDs, I wrote a Javascript using Puppeteer. The set of question banks is shown below:

question banks

A view of these from the Inspector is shown below:

question bank elements

The script is:


const puppeteer = require('puppeteer');
const delay = ms => new Promise(res => setTimeout(res, ms));

(async() => {

    const browser = await puppeteer.launch({headless: false});
    const page = await browser.newPage();
    await page.goto('http://canvas.docker/login/canvas', {waitUntil: 'load'});
    console.log(page.url());

    // Type our username and password
    await page.type('#pseudonym_session_unique_id', 'xxxx');
    await page.type('#pseudonym_session_password', 'xxxxx');

    // Submit form
    await page.click('.Button.Button--login');

    delay(3000);

    // Wait for  to load
    await page.goto('http://canvas.docker/courses/2/question_banks', {waitUntil: 'load'});

    console.log('FOUND!', page.url());

    // Extract the results from the page
    const links = await page.evaluate(() => {
      const anchors = Array.from(document.querySelectorAll('.question_bank'));
	return anchors.map(anchor => anchor.id+','+anchor.querySelector('.title').href+','+anchor.querySelector('.title').text); // textContent
    });
    console.log(links.join('\n'));

    await page.screenshot({path: 'login1.png'});

    browser.close();

})();

The output of the node login1.js script is:

http://canvas.docker/login/canvas
FOUND! http://canvas.docker/courses/2/question_banks
question_bank_blank,http://canvas.docker/courses/2/question_banks/%7B%7B%20id%20%7D%7D,No Name
question_bank_2,http://canvas.docker/courses/2/question_banks/2,New question bank
question_bank_29,http://canvas.docker/courses/2/question_banks/29,Test bank20
question_bank_31,http://canvas.docker/courses/2/question_banks/31,Test bank21
question_bank_32,http://canvas.docker/courses/2/question_banks/32,Test bank22
question_bank_30,http://canvas.docker/courses/2/question_banks/30,Test bank23
question_bank_1,http://canvas.docker/courses/2/question_banks/1,Unfiled Questions