puppeteer-enhanced-browser
TypeScript icon, indicating that this package has built-in type declarations

1.2.1 • Public • Published

puppeteer-enhanced-browser

Headless puppeteer with additional plugins and settings

npm License

Features

  • Ad block and stealth plugins
  • Add or remove plugins
  • Automatic tiles for page snapshots
  • A few puppeteer glitch workarounds

How to use

npm i puppeteer-enhanced-browser
# or
yarn add puppeteer-enhanced-browser
const browser = require('puppeteer-enhanced-browser')
// or
import { GoToPage, GetBrowser, CloseBrowser } from 'puppeteer-enhanced-browser'

You can optionally request evaluation results, page content or snapshots.

// then
GoToPage('https://example.com', { 
  content: true, /* HTML of the page */
  snapshots: true, /* or options for tile size etc... */, 
  evaluate: function () { /* results.evaluate will equal the body width */
    return document.body.clientWidth
  }
})
.then((results) => {
  // TODO
})
// or
const { snapshots, evaluate } = await GoToPage('https://example.com', { 
  content: true, /* HTML of the page */
  snapshots: true, /* or options for tile size etc... */, 
  evaluate: function () { /* evaluate will equal the body width */
    return document.body.clientWidth
  }
})

Evalulation with args passed between your code context and puppeteer's browser context

const { evaluate } = await GoToPage('https://example.com', {
  evaluate: function (a, b) { /* evaluate will equal the body width */
    return a + b
  },
  evaluateArgs: [1, 2]
})

Adjusting the tile size and/or snapshot limits

const { evaluate, snapshots } = await GoToPage('https://example.com', {
  snapshots: {
    tileSize: 1000, /* 1000px wide snapshots */
    limit: 5 /* do not snapshot the entire page, but only 5 snapshots. Depending on the tileSize this will return snapshots from all of or a portion of the page */
  }
});

Script and/or style injections

const { evaluate } = await GoToPage('https://example.com', {
  style: `body { width: 1000px !important; }`,
  script: `window.myObj = { function message () { return 'Hello World!'; } }`
  evaluate: () => {
    return window.myObj.message();
  }
});
console.log(evaluate)

Add/Remove plugins

import { PuppeteerExtraPlugin } from 'puppeteer-extra-plugin'
import { AddPlugin, RemovePlugin } from 'puppeteer-enhanced-browser'

class TestPlugin extends PuppeteerExtraPlugin {
  constructor(opts = {}) {
    super(opts)
  }

  get name() {
    return 'testplugin'
  }
}

// add a new plugin
AddPlugin(new TestPlugin())
// remove the default adblock plugin
RemovePlugin('adblock')

Modify puppeteer launch options

You can setup launch option before calling GoToPage, GetBrowser or by calling CloseBrowser and then executing one of the former functions.

import PuppeteerLaunchOptions from 'puppeteer-enhanced-browser'
PuppeteerLaunchOptions.dumpio = true

Dependents (0)

Package Sidebar

Install

npm i puppeteer-enhanced-browser

Weekly Downloads

1

Version

1.2.1

License

MIT

Unpacked Size

47.9 kB

Total Files

8

Last publish

Collaborators

  • ironincoder