使用命令行

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-pathcli这两个参数,他们在通过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"
 

[译文]casperjs使用说明-使用命令行的更多相关文章

  1. [译文]casperjs使用说明-测试

    capserjs自带了一个测试框架,它提供了一个使你能够更容易的测试你的web应用的工具集. 注意: 1.1版本变更 这个测试框架,包括它的所有API,仅能使用在casperjs test子命令下 如 ...

  2. [译文]casperjs使用说明-选择器

    casperjs的选择器可以在dom下工作,他既支持css也支持xpath. 下面所有的例子都基于这段html代码: <!doctype html> <html> <he ...

  3. Kettle命令行使用说明

    Kettle命令行使用说明 1.Pan——转换执行器 用来执行转换.参数与Kitchen类似,如下. 1- -version显示版本信息 2- -file=filename运行xml文件 3- -pa ...

  4. tput 命令行使用说明

    转载自:https://blog.csdn.net/fdipzone/article/details/9993961 什么是 tput?tput 命令将通过 terminfo 数据库对您的终端会话进行 ...

  5. adb shell screenrecord命令行使用说明

    一.查看帮助命令,参数 --help D:\>adb shell screenrecord --help Usage: screenrecord [options] <filename&g ...

  6. 在非SQL客户端使用命令行方式定期连接SQL Server 服务器并模拟用户查询操作,同时输出信息内容

    一个很长的标题,实现的功能就是尽量使用非人力的方式模拟人去做一件事情,为了便于记录,将他们输出成文件方便查阅. 图形界面方式,使用微软自己的ConnMaker.exe,或者Microsoft 数据连接 ...

  7. Git命令行(转用于学习和记录)

    Git命令行介绍和使用说明(持续更新) 参见:<Git 中文简体教程> 一. 命令“git”或者“git help”查询常用命令 [add]: “git add”——不但是用来添加不在版本 ...

  8. 7Z命令行详解

    7z.exe在CMD窗口的使用说明如下: 7-Zip (A) 4.57 Copyright (c) 1999-2007 Igor Pavlov 2007-12-06 Usage: 7za <co ...

  9. PHP下的命令行执行 php -S localhost -t public

    PHP 的命令行模式     以下是 PHP 二进制文件(即 php.exe 程序)提供的命令行模式的选项参数,您随时可以通过 PHP -h 命令来查询这些参数. Usage: php [option ...

随机推荐

  1. Gym101128G:Game of Cards

    题意: 有P摞纸牌和一个数字k,每次可以从一摞中拿0-k张牌,拿完再剩下的牌中的第一张数字是几,就必须再拿几张,谁不能拿谁输. emmm感觉好像就是裸的SG游戏啊,数据不大,递推出每一摞牌的SG值,然 ...

  2. C 和 CPP 混合代码cmath编译出错

    Visual Studio会将cmath内的一些列函数报错 解决方式:项目->属性->配置属性->C/C++ ->高级->编译为->选择编译为C++代码即可

  3. 王子和公主 UVa10635

    [题目描述]:王子和公主 一个王子和公主在n*n的格子中行走,这些格子是有1....n^2的编号的.现在给定p+1个数,再给定q+1个数,公主和王子可以选择其中某些格子行走,求他们最多能走几个相同的格 ...

  4. SQL基础问题(一)

    1.sql是什么? 结构化查询语言(Structured Query Language). 2.结构化查询语言的分类? 数据定义语言(DDL)Data Definition Language   操作 ...

  5. echo $[1 + 2] shell中 $[] 在bash中同$(()),用于算术计算

    shell脚本编写:echo $[ 11#8+1] 输出结果是几,为什么,怎么算来的?  摘自:https://zhidao.baidu.com/question/334766451.html   结 ...

  6. javascript的事件冒泡【转】

    出处:http://www.cnblogs.com/sanshi/archive/2009/02/18/1393165.html (感谢三生石上) 这是一个基础性的文章,使用Javascript观察D ...

  7. ios7 - Custom UItabbar has a gap in the bottom

    3down votefavorite   Im trying to create a custom UITabbar using images for the selected and unselec ...

  8. opencv常用函数备忘

    //显示图片 IplImage * src = cvLoadImage("xx.JPG"); cvNamedWindow(); cvShowImage("show_ima ...

  9. Cannot evaluate the property expression "$([MSBuild]::ValueOrDefault('$(VCTargetsPath)','$(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\V140\'))" found at "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuil

    Cannot evaluate the property expression "$([MSBuild]::ValueOrDefault('$(VCTargetsPath)','$(MSBu ...

  10. 在java中对数据库进行增删改查

    1.java连接MySql数据库 代码区域: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 ...