Nightmarejs plugin that uses the electron devtools to capture the network activity of an http request in HAR (HTTP Archive) format.
It extends the nightmare behaviour with 2 extra methods: getHAR()
and waitForDevtools()
. It also contains a chrome devtools extension used to retrieve the network activity.
.waitForDevtools()
Waits for devtools to open so all network requests can be captured. If not executed before the first goto()
method, the first requests may be lost because of the async behavior of opening the devtools.
.getHAR()
Retrives the HAR information as a json.
.resetHAR()
Reset the current HAR information.
.install(Nightmare)
Installs the extra methods using the Nightmare's action
API.
.getDevtoolsOptions()
Returns an object with some default devtools options Nightmare needs in order to open devtools shortly after initialization.
npm install nightmare-har-plugin
let Nightmare = require('nightmare')
let harPlugin = require('nightmare-har-plugin')
harPlugin.install(Nightmare)
let options = {
waitTimeout: 1000
}
let nightmare = Nightmare(Object.assign(harPlugin.getDevtoolsOptions(), options))
nightmare
.waitForDevtools()
.goto('http://news.ycombinator.com')
.wait('#hnmain')
.getHAR()
.end()
.then((result) => console.log(JSON.stringify({log: result})))
.catch((error) => console.error(error))