有没有人用过 casperJS ? 求助!

2013-02-18 12:20:48 +08:00
 RelativeLayout
casper 的介绍 在此 https://nicolas.perriault.net/code/2012/introducing-casperjs-toolkit-phantomjs/

casper 的官方文档在此: http://casperjs.org/

问题:

做的是人人的模拟登陆过程

第一步骤截图:


而后第二步骤截的图:



第三步骤提交了表单之后却返回这个截图:



我也试过模拟按钮click,但是发现没有翻译,第三步的截图跟第二部就一样了。

源码放楼下。
5327 次点击
所在节点    程序员
11 条回复
RelativeLayout
2013-02-18 12:22:43 +08:00
var renren = "http://www.renren.com";

var casper = require("casper").create();

var counter = 0;

function cap(){
casper.capture("step-"+counter+".png",
{
top: 0,
left: 0,
width: 1000,
height: 1000
});
counter++;
}

casper.start(renren);

casper.then(cap);

casper.then(function(){
casper.fill("form#loginForm",{
'email':'人人ID',
'password':"人人PASSWORD"
},true);
});

casper.then(cap);

casper.run();
RelativeLayout
2013-02-18 12:25:33 +08:00
新浪微博的模拟就十分正常
binux
2013-02-18 12:36:43 +08:00
登陆是ajax的,直接submit那个form是不行的
RelativeLayout
2013-02-18 12:59:13 +08:00
@binux 可是我模拟了按钮事件了啊。。。

casperJS内部跑的就是webkit,按钮按下的事情应该跟真人点击类似呀(也就是内部会处理ajax的么)。
binux
2013-02-18 15:02:33 +08:00
casper.fill("form#loginForm",{
'email':'人人ID',
'password':"人人PASSWORD"
},false);

casper.evaluate(function() {
$('login').click();
});

然后等一段时间再截屏
我没账号,后面怎么样我也不知道
jiangplus
2013-02-18 19:55:02 +08:00
我以前也做过类似的事情,发现phantomjs/casperjs太坑了,用waitr轻松搞定
wong2
2013-02-18 20:51:06 +08:00
这个东西能模拟提交表单,但是能执行页面的js么?
RelativeLayout
2013-02-19 23:50:19 +08:00
@wong2 能啊,他内部是webkit ,就是没有界面的浏览器。你可以去官方文档看看。
cain
2013-02-20 16:58:47 +08:00
cain
2013-02-20 16:59:26 +08:00
RelativeLayout
2013-02-20 22:29:09 +08:00
@cain 试了,还是不工作。 不知道你能不能试一下人人的模拟登陆。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/60604

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX