V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
RelativeLayout
V2EX  ›  程序员

有没有人用过 casperJS ? 求助!

  •  
  •   RelativeLayout ·
    daimajia · 2013-02-18 12:20:48 +08:00 · 5416 次点击
    这是一个创建于 4300 天前的主题,其中的信息可能已经有所发展或是发生改变。
    casper 的介绍 在此 https://nicolas.perriault.net/code/2012/introducing-casperjs-toolkit-phantomjs/

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

    问题:

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

    第一步骤截图:


    而后第二步骤截的图:



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



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

    源码放楼下。
    11 条回复    1970-01-01 08:00:00 +08:00
    RelativeLayout
        1
    RelativeLayout  
    OP
       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
        2
    RelativeLayout  
    OP
       2013-02-18 12:25:33 +08:00
    新浪微博的模拟就十分正常
    binux
        3
    binux  
       2013-02-18 12:36:43 +08:00
    登陆是ajax的,直接submit那个form是不行的
    RelativeLayout
        4
    RelativeLayout  
    OP
       2013-02-18 12:59:13 +08:00
    @binux 可是我模拟了按钮事件了啊。。。

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

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

    然后等一段时间再截屏
    我没账号,后面怎么样我也不知道
    jiangplus
        6
    jiangplus  
       2013-02-18 19:55:02 +08:00
    我以前也做过类似的事情,发现phantomjs/casperjs太坑了,用waitr轻松搞定
    wong2
        7
    wong2  
       2013-02-18 20:51:06 +08:00
    这个东西能模拟提交表单,但是能执行页面的js么?
    RelativeLayout
        8
    RelativeLayout  
    OP
       2013-02-19 23:50:19 +08:00
    @wong2 能啊,他内部是webkit ,就是没有界面的浏览器。你可以去官方文档看看。
    cain
        9
    cain  
       2013-02-20 16:58:47 +08:00
    cain
        10
    cain  
       2013-02-20 16:59:26 +08:00
    RelativeLayout
        11
    RelativeLayout  
    OP
       2013-02-20 22:29:09 +08:00
    @cain 试了,还是不工作。 不知道你能不能试一下人人的模拟登陆。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3146 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 13:57 · PVG 21:57 · LAX 05:57 · JFK 08:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.