Casperjs的高级应用之start(),create()

本篇主要讲解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. });
你也能够在运行时中改变 options:

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

type: Object
default:  { }
PhantomJS的 webPage实例,可用的设置如下:
javascriptEnabled 定义了页面是否执行script脚本 (默认为true) ;
loadImages 定义了是否加载图片(默认为true) ;
loadPlugins 定义了是否加载 NPAPI 插件 (Flash, Silverlight, …);
localToRemoteUrlAccessEnabled 定义了本地资源是否可以上传(默认为 false) ;
 userAgent 定义了页面请求服务器资源时的userAgent;
userName 设置http认证的用户名 ;
password 设置http认证的密码 ;
XSSAuditingEnabled 定义是否能发起跨域请求(默认为 false).

start(String url[, Function then])

这里的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();

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()  也能接受一个onComplete回调,你可以考虑作为一个自定义的最后一步时要执行的所有其他的步骤被执行,不要忘记执行exit(),如果你执行回调。

casper.run(function() {
	this.echo('So the whole suite ended.');
	this.exit(); // <--- don't forget me!
});








你可能感兴趣的:(casperjs)