phantom-promise
v0.1.9
Published
A PhantomJS bridge with a promise based api.
Downloads
14
Readme
phantom-promise
A PhantomJS bridge with a promise based api.
Installation
npm install phantom-promise
Usage
var Phantom = require('phantom-promise');
var phantom = Phantom.create();
phantom.initialize()
.then(() => phantom.createPage())
.then((page) => {
var pageFunction = function () {
var result = 'Hello from Phantom.';
window.callPhantom(result);
};
return page.evaluate(pageFunction);
})
.then((result) => {
console.log(result); //=> Hello from Phantom.
phantom.shutdown();
});
API
Phantom
Page
Phantom
create ( )
Returns an instance of Phantom
.
Example
var Phantom = require('phantom-promise');
var phantom = Phantom.create();
createPage ( )
Creates a Web Page in PhantomJs. Returns a Promise
that is fulfilled with an instance of Page
.
Example
phantom.createPage()
.then((page) => {
// ...
})
initialize ( )
Initializes the Phantom
instance. Returns a Promise
that is fulfilled once the initialization is complete.
This must be called before the instance can be used.
Example
phantom.initialize()
.then(() => {
// ...
});
shutdown ( )
Shuts down the phantom instance. Once this has been called, the instance is no longer operable unless it is re-initialized.
Example
phantom.shutdown();
Page
close ( )
Closes the page. Once this has been called, the page instance can no longer be used.
Example
page.close();
evaluate ( fn [,arg] )
Evaluates a function on the page. Returns a Promise
that is fulfilled with the return value of the function.
Arguments
fn
- The function to evaluate on the page. This function must callwindow.callPhantom(result)
in order to return.arg
- An argument to evaluatefn
with. This argument must be JSON-serializable (i.e. Closures, functions, DOM nodes, etc. will not work!).
Example
var pageFunction = function (arg) {
window.callPhantom(arg);
};
var arg = 'Hello from Phantom.';
page.evaluate(pageFunction, arg)
.then((result) => {
console.log(result); //=> 'Hello from Phantom.'
});
get ( property )
Returns a Promise that is fulfilled with the requested page property.
Arguments
property
- A string determining the property to return.
Example
page.get('viewportSize')
.then((viewportSize) => {
// ...
});
injectJs ( paths )
Injects external scripts into the page. The scripts are loaded in the order they are supplied so that dependencies can be met.
Arguments
paths
- A path or an array of paths to the script files to be injected.
Example
page.injectJs('path/to/external/script.js');
set ( property , value )
Sets a page property. Returns a promise that is fulfilled with the result.
Arguments
property
- A string determining the property to set.value
- The value to apply.
Example
page.set('viewportSize', {height: 768, width: 1024});