andywer / ideabox

Place to collect techy ideas and get feedback.
1 stars 1 forks source link

Puppeteer CLI #13

Open andywer opened 6 years ago

andywer commented 6 years ago

Run any code in a headless chrome instance. Useful for running tests in a browser (Karma sucks!), snapshotting and more.

Entry point may be a JS or HTML file. Console output will be piped through, unhandled errors will be piped to stderr. The DOM, the rendered page, network requests or coverage may be piped into an output file.

Sample usage

$ tool ./some-file.js
$ tool https://cdnjs.cloudflare.com/ajax/libs/mocha/5.0.4/mocha.js ./integration-test
$ tool https://google.com/ --capture-snapshot ./snapshot.png --viewport 800x600
$ tool https://google.com/ --capture-pdf ./snapshot.pdf
$ tool https://google.com/ --capture-requests ./requests.json

# Advanced
$ tool http://localhost:3000/ ./integration-test --request-interceptor ./user-fetch-fails

Integrations

Optional integration to use a locally present webpack or parcel bundler and its config might be cool.

andywer commented 6 years ago

Issue: How to know when the script(s) in the headless browser are finished?

Potential solution: Script exits explicitly. Could add a window.exit(statusCode) method or add a process object with a process.exit(statusCode) method.