Package Exports
- chrome-launcher
- chrome-launcher/chrome-finder
- chrome-launcher/utils
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (chrome-launcher) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Chrome Launcher 
Launch Google Chrome with ease from node.
- Disables many Chrome services that add noise to automated scenarios
- Opens up the browser's
remote-debugging-port
on an available port - Automagically locates a Chrome binary to launch
- Uses a fresh Chrome profile for each launch, and cleans itself up on
kill()
- Binds
Ctrl-C
(by default) to terminate the Chrome process - Exposes a small set of options for configurability over these details
Installing
yarn add chrome-launcher
# or with npm:
npm install chrome-launcher
API
.launch([opts])
Launch options
{
// (optional) remote debugging port number to use. If provided port is already busy, launch() will reject
// Default: an available port is autoselected
port: number;
// (optional) Additional flags to pass to Chrome, for example: ['--headless', '--disable-gpu']
// See all flags here: http://peter.sh/experiments/chromium-command-line-switches/
// Do note, many flags are set by default: https://github.com/GoogleChrome/lighthouse/blob/master/chrome-launcher/flags.ts
chromeFlags: Array<string>;
// (optional) Close the Chrome process on `Ctrl-C`
// Default: true
handleSIGINT: boolean;
// (optional) Explicit path of intended Chrome binary
// By default, any detected Chrome Canary or Chrome (stable) will be launched
chromePath: string;
// (optional) Chrome profile path to use
// By default, a fresh Chrome profile will be created
userDataDir: string;
// (optional) Starting URL to open the browser with
// Default: `about:blank`
startingUrl: string;
};
Launched chrome interface
.launch().then(chrome => ...
// The remote debugging port exposed by the launched chrome
chrome.port: number;
// Method kill Chrome (and cleanup the profile folder)
chrome.kill: () => Promise<{}>;
// The process id
chrome.pid: number;
Examples
Launching chrome:
const chromeLauncher = require('chrome-launcher');
chromeLauncher.launch({
startingUrl: 'https://google.com'
}).then(chrome => {
console.log(`Chrome debugging port running on ${chrome.port}`);
});
Launching headless chrome:
const chromeLauncher = require('chrome-launcher');
chromeLauncher.launch({
startingUrl: 'https://google.com',
chromeFlags: ['--headless', '--disable-gpu']
}).then(chrome => {
console.log(`Chrome debugging port running on ${chrome.port}`);
});