目前我有登录网站的脚本,然后跟踪在此过程中发出的请求。但是我看到在两个不同页面之间,我的请求是相同的,并且没有向跟踪器发送用户相关数据,这意味着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();
});
});
感谢您的帮助。