123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- const puppeteer = require('puppeteer');
- const inspect = require('util').inspect;
- const URL = process.argv[2];
- async function main() {
- /* eslint-disable no-console */
- console.info('Starting Chrome Headless');
- const browser = await puppeteer.launch({ args: ['--no-sandbox'] });
- const page = await browser.newPage();
- console.info('Navigating to page:', URL);
- await page.goto(URL);
- console.info('Waiting for page to load...');
- const html = await page.content();
- if (inspect(html).indexOf('jupyter-config-data') === -1) {
- console.error('Error loading JupyterLab page:');
- console.error(html);
- }
- const el = await page.waitForSelector('#browserTest', { timeout: 100000 });
- console.log('Waiting for application to start...');
- let testError = null;
- try {
- await page.waitForSelector('.completed');
- } catch (e) {
- testError = e;
- }
- const textContent = await el.getProperty('textContent');
- const errors = JSON.parse(await textContent.jsonValue());
- for (let error of errors) {
- console.error(`Parsed an error from text content: ${error.message}`, error);
- }
- await browser.close();
- if (testError) {
- throw testError;
- }
- console.info('Chrome test complete');
- }
- // Stop the process if an error is raised in the async function.
- process.on('unhandledRejection', up => {
- throw up;
- });
- main();
|