1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- const puppeteer = require('puppeteer');
- const inspect = require('util').inspect;
- const URL = process.argv[2];
- async function main() {
- 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();
|