Snippets

RapidSpike Chrome Launcher

Created by Tyler James
const launcher = require('chrome-launcher');
const remoteInterface = require('chrome-remote-interface');

const testChrome = async event => {
    let chromeFlags = [
        '--no-first-run',
        '--window-size=1366,768',
        '--disable-gpu',
        '--disable-dev-shm-usage',
        '--no-sandbox',
        '--disable-storage-reset',
        '--homedir=/tmp',
        '--disk-cache-dir=/tmp/cache-dir',
        '--hide-scrollbars',
        '--ignore-certificate-errors',
        '--headless'
    ]

    let chromeOpts = {
        chromeFlags,
        port:9222,
        ignoreDefaultFlags: true,
        userDataDir: false,
        logLevel: 'info'
    }

    let client;

    try {
        let port;
        const chrome = await launcher.launch(chromeOpts).then(chrome => {
            port = chrome.port
            console.log('browser launched')
        })

        console.log('about to boot client');
        const client = await remoteInterface({port:port});
        console.log('client booted');

        const { Network, Page} = client

        Network.requestWillBeSent((params) => {
            console.log(params.request.url);
        });

        console.log('Enabling network')
        await Network.enable()

        console.log('Enabling page')
        await Page.enable()

        console.log('About to navigate')
        await Page.navigate({ url: 'https://www.google.com/' })

        await Page.loadEventFired()
    } catch (error){
        console.error(error);
    } finally {
        if(client){
            await client.close();
        }
    }
};

export const handler = testChrome

Comments (0)

HTTPS SSH

You can clone a snippet to your computer for local editing. Learn more.