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はオブジェクトである
// 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で調べられます
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
//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();