CasperJS会话怪异的行为

时间:2014-12-29 14:02:09

标签: javascript session phantomjs casperjs

目前我有登录网站的脚本,然后跟踪在此过程中发出的请求。但是我看到在两个不同页面之间,我的请求是相同的,并且没有向跟踪器发送用户相关数据,这意味着PhantomJS中这些页面之间没有会话。

我收听resource.requested并且所有请求都在那里,问题是上一个断言中没有数据,应该在第2页和第2页之间注入的日期。 3.

这是一些与幻影相关的奇怪行为吗?有没有人有这方面的经验?

这是我的代码:

var user, pass, url;

casper.on("resource.requested",function(resource){
    var match = resource.url.match("track_data");
    if(match!=null) casper.echo(resource.url);
 });

casper.test.begin('Tracking test',3,function suite(test){
    casper.start(url,function(page){
        this.test.assertHttpStatus(200,'Page opened');
 });
casper.then(function(){
    this.evaluate(function(username, password){
        document.querySelector('#email').value = username;
        document.querySelector('#password').value = password;
        document.querySelector('#submit').click();
    },user,pass);
    this.waitForResource(function(req){
        if(typeof document.sessionStorage !== "undefined") {
            casper.echo(JSON.stringify(document.sessionStorage,null,"   "));
        } // all off the sessions are undefined

        var match = req.url.match("track_user");
        if(match!=null) return true;
    },function(){
        this.test.assert(true,"User is tracked")
    },function(){
        this.test.assert(false,"Request not found");
    });
});
casper.wait(3000);
casper.then(function(){
        this.mouseEvent('click','.next-page');
        this.waitForResource(function(req){
            if(typeof document.sessionStorage !== "undefined") {
                casper.echo(JSON.stringify(document.sessionStorage,null,"   "));
            } // all off the sessions are undefined
            var match = req.url.match("id_user");
            if(match!=null) return true;
        },function(){
            this.test.assert(true,"ID is tracked")
        }, function(){
            this.test.assert(false,"Request 2 not found");
        });

});

casper.run(function(){
    test.done();
});
});

感谢您的帮助。

0 个答案:

没有答案