CasperJS >Using the command line学習メモ

Using the command line
http://docs.casperjs.org/en/latest/cli.html

***
**勉強した所：**
***
1.require('casper').create();でcasperのインスタンスを生成
2.require('utils').create();でコマンドラインのライブラリutilsを使用可能にする
3.casper.echo("some string");でコマンドラインへメッセージ出力
4.utils.dump(casper.cli);でcliオブジェクトの内容をJSON形式でコマンドラインへ出力可能
5.casper.cliオブジェクトの中にargs、options、rawの3つのオブジェクトが存在します。
 5-1.utils.dump(casper.cli.args)でcasper.cli.argsオブジェクトの中身をdump可能
 5-2.utils.dump(casper.cli.options)でcasper.cli.optionsオブジェクトの中身をdump可能
 5-3.utils.dump(caspter.cli.raw)でcasper.cli.rawオブジェクトの中身をdump可能
 5-4.rawオブジェクトの中にargsとoptionsの内容が含まれています。rawの中身はコマンドラインのままであり、型変換がされていない。optionsの中身が型変更されたものが入っています。例：01234567⇒1234567
6.Getting, checking or dropping parameters
 6-1. casper.cli.has(0)でargsの中に存在するかチェック可能,
      casper.cli.get(0)でargsの中のものを取得可能
      casper.cli.drop(0)でargsの中のものを削除可能
 6-2. casper.cli.has("key")でoptionsの中に存在するかチェック可能
      casper.cli.get("key")でoptionsの中のものを取得可能
      casper.cli.drop("key")でoptionsの中のものを削除可能
 6-3.capser.cli.optionsの中に暗黙的にcliとcasper-pathが含まれています。
 6-4.utils.dump(casper.cli.raw.get('foo'));のようにコマンドラインのままデータが取得できます。
7.コマンドラインにCasperJS実行対象のファイル以外のパラメータが入力されたかのチェック方法
  7-1.Object.kesy(object).length===0でオブジェクトの中にKeyが入っているかどうかのチェック方法である
  7-2.casper.cli.argsはArrayであり、casper.cli.optionsはオブジェクトである

```js
// removing default options passed by the Python executable
casper.cli.drop("cli");
casper.cli.drop("casper-path");

if (casper.cli.args.length === 0 && Object.keys(casper.cli.options).length === 0) {
    casper.echo("No arg nor option passed").exit();
}
```
8.casperjs native optionsについて-verbose --log-level=debugなどがあります。
　phantomjs --helpで調べられます

***
```js:Using_the_command_line
var casper = require("casper").create();
var utils = require("utils");

casper.echo("Casper CLI passed args:");
//require("utils").dump(casper.cli.args);
utils.dump(casper.cli.args);

casper.echo("Casper CLI passed options:");
//require("utils").dump(casper.cli.options);
utils.dump(casper.cli.options);

casper.echo("casper.cli.has(0):" + casper.cli.has(0));
casper.echo("casper.cli.get(0):" + casper.cli.get(0));
casper.echo("capter.cli.has(3):" + casper.cli.has(3));
casper.echo("capter.cli.get(3):" + casper.cli.get(3));
casper.echo("-------------------")
casper.cli.drop(3);
casper.echo(casper.cli.has(3));
casper.echo(casper.cli.get(3));
casper.echo("-------------------")
casper.echo('casper.cli.has("foo"):' + casper.cli.has("foo"));
casper.echo('casper.cli.get("foo"):' + casper.cli.get("foo"));
//casper.cli.drop("foo");
casper.echo('casper.cli.has("foo"):' + casper.cli.has("foo"));
casper.echo('casper.cli.get("foo"):' + casper.cli.get("foo"));

casper.echo('casper.cli.raw.has("foo"):' + casper.cli.raw.has("foo"));
casper.echo('casper.cli.raw.get("foo"):' + casper.cli.raw.get("foo"));

casper.echo("Object.keys:[" + Object.keys(casper.cli.options) + "]");

/*
casper.cli.drop("cli");
casper.cli.drop("casper-path");


if (casper.cli.args.length === 0 && Object.keys(casper.cli.options).length ===0 ){
    casper.echo("No arg nor option passed");   
}
*/

utils.dump(casper.cli.get("foo"));
utils.dump(casper.cli.raw.get("foo"));
utils.dump(casper.cli);
casper.exit();

//コマンドで下記のように実行する
    //Example
    //C:\>casperjs c:\casperjs\lianxi\CLI.js  arg1 arg2 arg3 --foo=01234567 --plop=false anotherarg

//casperjs native options
    //Example
    //C:\>casperjs --verbose --log-level=debug c:\casperjs\lianxi\CLI.js

//
//phantomjs --help
```

```js:コメントによる復習方法
//casperのインスタンスを作成する

//utilsを使用可能にする

//"Casper CLI passed args:"を出力
//casper.cli.argsをdump

//"Casper CLI passed options:"出力
//casper.cli.optionsをdump

//1番のパラメータが存在するかをチェック
//1番のパラメータを取得

//4番のパラメータが存在するかをチェック
//4番のパラメータを取得

//cli.optionsに"foo"のパラメータが存在するかをチェック
//cli.optionsのなかの"foo"のパラメータを取得

//cli.rawに"foo"のパラメータが存在するかをチェック
//cli.rawのなかの"foo"のパラメータを取得

//cli.optionsのなかの"foo"のパラメータを削除する
//cli.optionsのなかの"foo"のパラメータが存在するかをチェック
//cli.optionsのなかの"foo"のパラメータを取得

//cli.rawのなかの"foo"のパラメータを削除する
//cli.rawのなかの"foo"のパラメータが存在するかをチェック
//cli.rawのなかの"foo"のパラメータを取得

// removing default options passed by the Python executable

//cli.optionsから"foo"を取得
//cli.rawから"foo"を取得

//casper.exit();
```