- Ad block and stealth plugins
- Add or remove plugins
- Automatic tiles for page snapshots
- A few puppeteer glitch workarounds
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
}
})
const { evaluate } = await GoToPage('https://example.com', {
evaluate: function (a, b) { /* evaluate will equal the body width */
return a + b
},
evaluateArgs: [1, 2]
})
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 */
}
});
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)
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')
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