LoginSignup
12
14

More than 5 years have passed since last update.

CasperJS >Using the command line学習メモ

Last updated at Posted at 2014-02-12

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で調べられます


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
コメントによる復習方法
//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();
12
14
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
14