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

参考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属性获取原始参数值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值