本篇主要讲解Casperjs的create(),start()函数。
create()
使用create()来创建一个casper实例,举例说明:
var casper = require('casper').create();
我们也可以通过实例化主方法的方式获得一个自身的实例:
var casper = new require('casper').Casper(); //使用casper的构造函数实例化
不管是casper构造函数还是create()方法,都接受一个参数选项,这个标准的javascript对象一样。
var casper = require(
'casper'
).create({
verbose:
true
,
logLevel:
"debug"
});
Casper.Options
option对象可以被传入casper构造函数:
var casper = require(
'casper'
).create({
02.
clientScripts: [
03.
'includes/jquery.js'
,
// These two scripts will be injected in remote
04.
'includes/underscore.js'
// DOM on every request
05.
],
06.
pageSettings: {
07.
loadImages:
false
,
// The WebPage instance used by Casper will
08.
loadPlugins:
false
// use these settings
09.
},
10.
logLevel:
"info"
,
// Only "info" level messages will be logged
11.
verbose:
true
// log messages will be printed out to the console
12.
});
var casper = require(
'casper'
).create();
2.
casper.options.waitTimeout =
1000
;
1.clientScripts
type:Array
Default:[]
一个本地script脚本文件路径的集合,它们能被加载到所有页面
2.exitOnError
Type:Boolean
Default:true
如果CasperJS的脚本在运行过程中出现一个uncaught error,那么casperjs运行结束。
3.logLevel
type:string
default:error
日志等级
4.stepTimeout
type:Number
default:Null
用毫秒计算的最大step超时时间,当设置以后,每个定义的step方法都将在超时时间到达以前执行完成,你可以定义onStepTimeout() 回调方法来捕获这种情况,默认情况下,这个脚本将会抛出一个错误信息并结束
5.verbose
type:Boolean
default:false
实时输出log信息
6. pageSettings
这里的url为你输入的要访问的网址,第二个参数为自定义函数,可选项。
casper.start('http://google.fr/', function() { this.echo("I'm loaded."); }); casper.run();
或者可以使用下面的方法:
casper.start('http://google.fr/'); casper.then(function() { this.echo("I'm loaded."); //或者是使用casper.echo(""); }); casper.run();
Signature: run(fn onComplete[, int time])
运行整个测试步骤,并且在执行完成后执行一个回调。很显然,这是一个强制执行casper测试的方法。
var casper=require("casper").create();
casper.start('http://foo.bar/home', function() {
//...
});
// hey, it's missing .run() here!
上面代码是不会被执行的。
var casper=require("casper").create();
casper.start('http://foo.bar/home', function() {
//...
});
casper.run(); //这样就会执行了
casper.run(function() {
this.echo('So the whole suite ended.');
this.exit(); // <--- don't forget me!
});