V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
RelativeLayout
V2EX  ›  程序员

有没有人用过 casperJS ? 求助!

  •  
  •   RelativeLayout ·
    daimajia · Feb 18, 2013 · 5864 views
    This topic created in 4816 days ago, the information mentioned may be changed or developed.
    casper 的介绍 在此 https://nicolas.perriault.net/code/2012/introducing-casperjs-toolkit-phantomjs/

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

    问题:

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

    第一步骤截图:


    而后第二步骤截的图:



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



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

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

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

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

    然后等一段时间再截屏
    我没账号,后面怎么样我也不知道
    jiangplus
        6
    jiangplus  
       Feb 18, 2013
    我以前也做过类似的事情,发现phantomjs/casperjs太坑了,用waitr轻松搞定
    wong2
        7
    wong2  
       Feb 18, 2013
    这个东西能模拟提交表单,但是能执行页面的js么?
    RelativeLayout
        8
    RelativeLayout  
    OP
       Feb 19, 2013
    @wong2 能啊,他内部是webkit ,就是没有界面的浏览器。你可以去官方文档看看。
    cain
        9
    cain  
       Feb 20, 2013
    cain
        10
    cain  
       Feb 20, 2013
    RelativeLayout
        11
    RelativeLayout  
    OP
       Feb 20, 2013
    @cain 试了,还是不工作。 不知道你能不能试一下人人的模拟登陆。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3139 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 14:40 · PVG 22:40 · LAX 07:40 · JFK 10:40
    ♥ Do have faith in what you're doing.