0.0.1-beta.3 • Published 7 years ago

chroco v0.0.1-beta.3

Weekly downloads
3
License
MIT
Repository
github
Last release
7 years ago

Chroco

Chroco operates `puppeteer` with commandable, pluggable settings.
Chroco pronounced as "kuroko" means "black person"/"black clothes" in Japanese. Wikipedia: 黒子
Work in Progress It's a experimental package. Help us.

Installation and Usage

Installation

$ yarn add chroco
# or
$ npm i chroco

Programmable Usage

const { excecuter } = require('chroco')
executor({
  // your options, settings and scenarios
})

CLI Usage

$ chroco # default, detect `.chrocorc`
# or
$ chroco --config ./path/to/.chrocorc
# or (if you want, you can use yaml file.)
$ chroco --config .chroco.yml

Default value is .chrocorc.
refs: .chrocorc or .chrocorc.yml

Chroco Configure

Configure should be Object.

parmsdetailtypevalrequired
optionsrefs: puppeteer launch optionsObject-none
options.logLevelChroco original optionsArray.\<string>|string['info', 'warn', 'error']none
emulateOptionsrefs: puppeteer emulate optionsObject-none
receiversYour Customized Receiver, sampleArray.\<Function>-none
scenariosYour commandable, iterable ArrayArray.\<Object.\<Function>.\<Array|Object|string>-required

Scenarios \<Array>

  • scenarios[n].<Function> is puppeteer's "class: Page" method.
  • scenarios[n].<Function>.<Array|Object|string> is params for above method.
{
  scenarios: [
    goto: [
      'https://www.google.com',
      { waitUntil: 'load' }
    ],
    screenshot: {
      path: 'temp/screenshot.png',
      fullPage: true
    }
  ]
}

This commands executes ...

/**
 * Before commands executed,
 * Chroco executes launching Chrome instance and
 * delivering `puppeteer's page: class` to commands as internal param. 
 */

// const chrome = await puppeteer.launc()
// const page = await chrome.newPage()

await page.goto(
  'https://www.google.com',
  { waitUntil: 'load' }
)
await page.screenshot({
  path: 'temp/screenshot.png',
  fullPage: true
})

Each Scenario's key is mapped to class: Page method with puppeteer.