The Casper class
The easiest way to get a casper instance is to use the module’s create() method:
最简单获取casper实例的方法是casper模块的create()方法:
var casper = require('casper').create();
But you can also retrieve the main Function and instantiate it by yourself:
你也能够从主函数中获取实例,实例化
var casper = new require('casper').Casper();
Both the Casper constructor and the create() function accept a single options argument which is a standard javascript object:
casper构造函数和create函数都可以传入一个基础的JavaScript对象类型的设置:
var casper = require('casper').create({
verbose: true,
logLevel: "debug"
});
Casper.options
An options object can be passed to the Casper constructor, eg.:
一组设置对象能被传入到casper构造函数中,例如:
var casper = require('casper').create({
clientScripts: [
'includes/jquery.js', // These two scripts will be injected in remote DOM on every request
'includes/underscore.js' // 这两个脚本将被将在每一次请求时,注入到远程DOM
],
pageSettings: { // The WebPage instance used by Casper will use these settings
loadImages: false, // 使用casper创建的网页原型将会使用这些设置
},
logLevel: "info", // Only "info" level messages will be logged 只有"info"等级时的信息才会被记录
verbose: true // log messages will be printed out to the console 日志消息将会被输出到控制台
});
You can also alter options at runtime:
你也可以在运行时改变设置:
var casper = require('casper').create();
casper.options.waitTimeout = 1000;
The whole list of available options is detailed below.
全部可选参数如下详述:
clientScripts
类型:Array
默认:[]
A collection of script filepaths to include in every page loaded.
在每一个页面载入时引入的脚本路径的集合
exitOnError
类型: Boolean
默认: true
Sets if CasperJS must exit when an uncaught error has been thrown by the script.
设置是否casperjs当遇到已经被抛出的未捕捉的错误时必须退出
httpStatusHandlers
类型: Object
默认: {}
A javascript Object containing functions to call when a requested resource has a given HTTP status code. A dedicated sample is provided as an example.
当被请求资源时返回一个http状态码时,一个JavaScript对象包含回调函数.一个专门的事例给出作为一个例子.
logLevel
类型: String
默认:error
Logging level (see the logging section for more information)
日志等级(看日志章节获取更多信息)
onAlert
类型: Function
默认: null
具体样式: onAlert(Object Casper, String message)
A function to be called when a javascript alert() is triggered
当javascript的alert函数被触发时调用
onDie
类型: Function
默认: null
具体样式: onDie(Object Casper, String message, String status)
A function to be called when Casper#die() is called
当调用casper中的die时触发回调
onError
类型: Function
默认: null
具体样式: onError(Object Casper, String msg, Array backtrace)
A function to be called when an “error” level event occurs
当“error”等级的事件发生时触发回调函数
onLoadError
类型: Function
默认: null
具体样式: onLoadError(Object Casper, String casper.requestUrl, String status)
A function to be called when a requested resource cannot be loaded
当请求的资源不能被载入时触发
onPageInitialized
类型: Function
默认: null
具体样式: onPageInitialized(Object page)
A function to be called after WebPage instance has been initialized
页面初始化时触发
onResourceReceived
类型: Function
默认: null
具体样式: onResourceReceived(Object Casper, Object resource)
Proxy method for PhantomJS’ WebPage#onResourceReceived() callback, but the current Casper instance is passed as first argument.
PhantomJs的webpage的onResourceReceived方法的回调的替代方法,但是当前casper实例被当做第一个参数传入
onResourceRequested
类型: Function
默认: null
具体样式: onResourceRequested(Object Casper, Object resource)
Proxy method for PhantomJS’ WebPage#onResourceRequested() callback, but the current Casper instance is passed as first argument.
PhantomJs的webpage的onResourceRequested方法的回调的替代方法,但是当前casper实例被当做第一个参数传入
onStepComplete
类型: Function
默认: null
具体样式: onStepComplete(Object Casper, stepResult)
A function to be executed when a step function execution is finished.
当一个步骤函数执行完成触发
onStepTimeout
类型: Function
默认: Function
具体样式: onStepTimeout(Integer timeout, Integer stepNum)
A function to be executed when a step function execution time exceeds the value of the stepTimeout option, if any has been set.
By default, on timeout the script will exit displaying an error, except in test environment where it will just add a failure to the suite results.
当一个步骤函数时间超过stepTimeout选项的值时触发,如果被设置了 .默认情况下,当超时时脚本将会退出展示错误,除了在测试环境下,将会添加一个失败的结果
onTimeout
类型: Function
默认: Function
具体样式: onTimeout(Integer timeout)
A function to be executed when script execution time exceeds the value of the timeout option, if any has been set.
By default, on timeout the script will exit displaying an error, except in test environment where it will just add a failure to the suite results.
当脚本执行时间超过设置的超时timeout时触发,如果被设置了.默认情况下,当超市脚本将会退出展示一个错误,除了测试环境下,将会添加一个失败的结果
onWaitTimeout
类型: Function
默认: Function
具体样式: onWaitTimeout(Integer timeout)
A function to be executed when a waitFor function execution time exceeds the value of the waitTimeout option, if any has been set.
By default, on timeout the script will exit displaying an error, except in test environment where it will just add a failure to the suite results.
当以waitFor开头的等待的函数的执行时间超过了设定的waitTimeout时触发,如果被设置了.默认情况下,当超时脚本将会退出展示一个错误,除了测试环境下,将会添加一个失败的结果
page
类型: WebPage
默认: null
An existing PhantomJS WebPage instance
一个现有的PhantomJS网页实例
Warning
Overriding the page properties can cause some of the casper features may not work. For example, overriding the onUrlChanged property will cause the waitForUrl feature not work.
警告
覆盖page属性将会引起casper特性不工作.比如重写了onUrlChanged属性将会导致waitForUrl特性不工作
pageSettings
类型: Object
默认: {}
PhantomJS’s WebPage settings object. Available settings are:
PhantomJS的网页设置对象,可用的设置如下:
- javascriptEnabled defines whether to execute the script in the page or not (default to true)
定义javascript脚本是否可以执行,默认true - loadImages defines whether to load the inlined images or not
定义是否载入内联图片 - loadPlugins defines whether to load NPAPI plugins (Flash, Silverlight, …) or not
定义是否载入NPAPI插件 - localToRemoteUrlAccessEnabled defines whether local resource (e.g. from file) can access remote URLs or not (default to false)
定义本地资源是否有权限访问远程url,默认false - userAgent defines the user agent sent to server when the web page requests resources
定义UA - userName sets the user name used for HTTP authentication
设置用户名 - password sets the password used for HTTP authentication
设置密码 - XSSAuditingEnabled defines whether load requests should be monitored for cross-site scripting attempts (default to false)
定义是否允许跨域请求,默认false
remoteScripts
New in version 1.0.
类型: Array
默认: []
A collection of remote script urls to include in every page loaded
远程脚本url的集合,在每一次页面载入时引入
safeLogs
New in version 1.0.
类型: Boolean
默认: true
When this option is set to true — which is the default, any password information entered in will be obfuscated in log messages. Set safeLogs to false to disclose passwords in plain text (not recommended).
当这个选项被设置成true-也是默认值,被填入任何密码信息,将会在日志信息中混淆.设置safeLogs为false,将会在文本中透露密码(不推荐)
silentErrors
类型: Boolean
默认: false
When this option is enabled, caught step errors are not thrown (though related events are still emitted). Mostly used internally in a testing context.
当这个选项可用时,捕捉的每一个步骤错误将不抛出(尽管相关事件仍被执行).大部分用于内部测试.
stepTimeout
类型: Number
Default: null
Max step timeout in milliseconds; when set, every defined step function will have to execute before this timeout value has been reached. You can define the onStepTimeout() callback to catch such a case. By default, the script will die() with an error message.
最大步骤函数超时毫秒数.当设置了,任何一次定义的步骤函数将不得不在超时前到达时执行.你可以定义onStepTimeout回调函数去捕捉每一种情况.脚本将伴随着错误信息停止掉.
timeout
类型: Number
默认: null
Max timeout in milliseconds
最大超时毫秒数
verbose
类型: Boolean
默认: false
Realtime output of log messages
实时输出日志文件
viewportSize
类型: Object
默认: null
Viewport size, eg. {width: 800, height: 600}
视窗大小,比如. {width: 800, height: 600}
Note:PhantomJS ships with a default viewport of 400x300, and CasperJS won’t override it by default.
笔记:PhantomJS默认采用400x300的视窗,CasperJS不会默认重写
retryTimeout
类型: Number
默认: 100
Default delay between attempts, for wait family functions.
默认尝试等待时间,为wait类函数
waitTimeout
类型: Number
默认: 5000
Default wait timeout, for wait* family functions.
默认等待时间,为wait类函数