| Index: headless/README.md
|
| diff --git a/headless/README.md b/headless/README.md
|
| index 7886871c7b433c2bd48086d6acc2cb56615347cd..062106e07789abedfeab03b8370f35d34bc1d36c 100644
|
| --- a/headless/README.md
|
| +++ b/headless/README.md
|
| @@ -23,6 +23,37 @@ missing Mesa library.
|
| [DevTools](https://developer.chrome.com/devtools) interface or use a tool such
|
| as [Selenium](http://www.seleniumhq.org/) to drive the headless browser.
|
|
|
| +## Usage from Node.js
|
| +
|
| +For example, the [chrome-remote-interface](https://github.com/cyrus-and/chrome-remote-interface)
|
| +Node.js package can be used to extract a page's DOM like this:
|
| +
|
| +```
|
| +const CDP = require('chrome-remote-interface');
|
| +
|
| +CDP((client) => {
|
| + // Extract used DevTools domains.
|
| + const {Page, Runtime} = client;
|
| +
|
| + // Enable events on domains we are interested in.
|
| + Promise.all([
|
| + Page.enable()
|
| + ]).then(() => {
|
| + return Page.navigate({url: 'https://example.com'});
|
| + });
|
| +
|
| + // Evaluate outerHTML after page has loaded.
|
| + Page.loadEventFired(() => {
|
| + Runtime.evaluate({expression: 'document.body.outerHTML'}).then((result) => {
|
| + console.log(result.result.value);
|
| + client.close();
|
| + });
|
| + });
|
| +}).on('error', (err) => {
|
| + console.error('Cannot connect to browser:', err);
|
| +});
|
| +```
|
| +
|
| ## Usage as a C++ library
|
|
|
| Headless Chromium can be built as a library for embedding into a C++
|
|
|