首页 > 代码库 > CasperJS实践笔记(1)
CasperJS实践笔记(1)
CasperJS的执行workflow的一个问题(如果可以的话,请不要认为这是一个bug):
伪代码如下:
var casper = require("casper").create();casper.start("http://xx.xx.com");casper.then(function(){ this.echo("AAAA"); this.wait(1000, function(){ this.echo("BBB"); }) this.echo("CCCC");});casper.run(){ this.echo("...");};
预期运行结果可以应该是这样吧:
AAAABBBCCCC...
实际运行结果其实这样:
AAAACCCCBBB...
CasperJS本身是一个使用python语言封装的PhantomJS测试框架,没有看过它的workflow具体实现;所以只能猜想:
方法casper.then和方法casper.wait组成workflow的逻辑,或者说是workflow执行单元;
而其他代码不被当作执行单元,所以必须包装在casper.then或者casper.wait内。
casper.wait是一个系列的API,另外还有waitForSelector、waitFor、waitWhileSelector、waitUntilVisible等等;
用的最多的就是this.waitForSelector,设置一个超时时间等待一个元素(Html element),如果找到了就怎样/如果超时就怎样。
所以实际项目中的代码大约如下:
this.then(function(){ this.echo("start..."); this.waitFor( /// ... ) this.waitForSelector( // ... )})this.then(function(){ this.echo("start..."); this.waitFor( /// ... this.waitForSelector( // ... ) )})
(我的小项目自己一个人写,很多东西都在摸索阶段)
希望有经验的同仁不吝赐教!
CasperJS实践笔记(1)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。