casperjs使用说明-使用命令行

Casperjs使用内置的phantomjs命令行解析器,在cli模块里,它传递参数位置的命名选项
但是不要担心不能熟练操控CLI模块的API,一个casper实例已经包含了cli属性,允许你很容易的使用他的参数

让我们来看这个简单的casper脚本:

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

注意:
请注意casper-path 和 cli这两个参数,他们在通过casperjs执行casperjs脚本时被python执行

执行结果:

$ 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
}

获取,检查,删除参数:

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

有益的建议:
如果你想检查有那些参数在你的脚本中被使用,看下面的:

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

casper自有参数:
1.1版本新增:
casperjs命令有3个通用的参数:
–direct:把日志消息输出到控制台
–log-level=[debug|info|warning|error] 设置log等级
–engine=[phantomjs|slimerjs] 选择你想用的浏览器引擎,casperjs默认支持phantomjs支持的webkit,SlimerJS运行webkit内核

注意:
1.1版本已废弃
–direct参数已更名为–verbose。–direct尽管仍然可用,但是他被废弃是经过考虑的。

举例:

$ casperjs --verbose --log-level=debug myscript.js

最后但同样重要的是,你也能够使用所有的phantomjs 和cli命令行参数就像你运行其他的phantomjs脚本一样

$ casperjs --web-security=no --cookies-file=/tmp/mycookies.txt myscript.js

有益的建议:
想知道有那些phantomjs命令行参数可用,请运行phantomjs –help命令,SlimerJS支持的命令行参数几乎和phantomjs一致

原始参数值:
1.0版本新增

默认情况下,cli对象将把所有参数转换成他认为最合适的类型,比如这个例子:

var casper = require('casper').create();
var utils = require('utils');

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

casper.exit();

运行这个脚本:

$ casperjs c.js --foo=01234567
1234567

就像你看到的,01234567被转化为数字
有时候,你仅想得到原始的字符串,你可以使用cli对象的raw属性,他包含了这个参数的原始值

var casper = require('casper').create();
var utils = require('utils');

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

casper.exit();

使用举例:

$ casperjs c.js --foo=01234567
1234567
"01234567"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值