您的位置:首页 > 编程语言 > ASP

CasperJS学习笔记--命令行参数

2015-12-05 15:25 671 查看
参考http://docs.casperjs.org/en/latest/cli.html

命令行原理简介

CapserJS内置命令行工具,建立在PhantomJS的层次之上(也就是说传PhantomJS的参数是可以识别的)

具体的说,使用cli模块传参数。

命令行参数分为普通参数positional ones 和针对内置的选项named options的参数。

命令行传参的几个例子

用casper.cli 就可以取得传入的参数。

分大类整体取参数

//test.js
var casper = require("casper").create();

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

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

casper.exit();


来带参调用一下

$ casperjs test.js arg1 arg2 arg3 --foo=bar --plop anotherarg
Casper CLI passed args: [
"arg1",
"arg2",
"arg3",
"anotherarg"
]
Casper CLI passed options: {
"casper-path": "/Users/niko/Sites/casperjs",
"cli": true,
"foo": "bar",
"plop": true
}


取单个参数和清空参数

//test1.js
var casper = require("casper").create();
casper.echo(casper.cli.has(0));
casper.echo(casper.cli.get(0));
casper.echo(casper.cli.has(3));
casper.echo(casper.cli.get(3));
casper.echo(casper.cli.has("foo"));
casper.echo(casper.cli.get("foo"));
casper.cli.drop("foo");
casper.echo(casper.cli.has("foo"));
casper.echo(casper.cli.get("foo"));
casper.exit();


带参执行结果:

$ casperjs test.js arg1 arg2 arg3 --foo=bar --plop anotherarg
true
arg1
true
anotherarg
true
bar
false
undefined


一个检测脚本执行时是否带了参数的方法

// 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();
}


casperjs命令行的3个可选参数

–verbose(以前叫–direct): 将日志打印到控制台

–log-level=[debug|info|warning|error] :设置日志显示级别

–engine=[phantomjs|slimerjs]: 选择浏览器引擎。支持基于Webkit的PhantomJS和基于Gecko的SlimerJS。

此外还支持标准PhantomJS CLI选项传入casperjs命令行 (以后再研究)

原生参数值获取(避免参数被自动转换)

//test2.js
var casper = require('casper').create();
var utils = require('utils');

utils.dump(casper.cli.get('foo'));

casper.exit();


执行结果

$ casperjs test2.js --foo=01234567
1234567
"01234567"


默认情况下cli对象会被转换为Number,可以通过raw属性获取原始参数值。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: