electrun

0.0.3 • Public • Published

electrun

browser automation library. inspired by nightmare

install

npm install --save electrun

example

npm install -g babel@5
babel-node example.js

example.js

import Electrun from 'electrun';
 
async function main() {
    let electrun = new Electrun();
    electrun.process.stdout.pipe(process.stdout);
    electrun.process.stderr.pipe(process.stderr);
 
    let w = await electrun.open({ width: 1024, height: 768, show: true });
    await w.goto('about:blank');
    await w.devTool(true);
    await w.eval(`process.stdout.write('hello, electrun!\\n')`);
    await w.eval(`console.log('this will presented on devtool')`);
    await w.wait(3000);
    w.goto('http://google.com/');
    await w.wait('#lst-ib');
 
    // following code is todo
    await w.val('#lst-ib', 'electron');
    await w.submit('form');
    w.once('did-finish-load', async () => {
        await w.saveScreenshot('./electron.png');
    });
}
 
main().catch(err => console.error(err && err.stack || err));

api

Electrun

  • open([browserWindowOptions]) -> Promise<BrowserWindow>: open and returns browser window (options)
  • kill() -> void: kill electron process

BrowserWindow

  • close() -> Promise: close browser window
  • auth(username, password) -> Promise: set user info for passing basic authentication
  • goto(urlString) -> Promise: goto url
  • wait(msOrSelector) -> Promise: wait till selected element is present
  • eval(code) -> Promise<JsonValue>: eval javascript code and return result
  • click(selector) -> Promise
  • mousedown(selector) -> Promise
  • reload() -> Promise: reload page
  • f5() -> Promise: same as reload
  • devTool() -> Promise: toggle developer tool
  • devTool(true) -> Promise: open developer tool
  • devTool(false) -> Promise: close developer tool
  • f12() -> Promise: same as devTool

todo

  • val(selector) -> Promise<JsonValue>
  • val(selector, value) -> Promise
  • screenshot([rect]) -> Promise<Buffer>: returns screenshot as png buffer (rect)
  • saveScreenshot(savePath[, rect]) -> Promise: save screenshot as png
  • pdf([options]) -> Promise<Buffer>: (options)
  • savePdf(savePath[, options]) -> Promise

license

zlib

Package Sidebar

Install

npm i electrun

Weekly Downloads

9

Version

0.0.3

License

Zlib

Last publish

Collaborators

  • disjukr