如何检查是否存在使用casper(+幻像)的重定向?试试吧:
casper.test.begin('\n********* check 301 : ***********', function(test){
casper.start('http://www.linternaute.com/ville/rennes2/ville-35238', function(response){
this.test.assertHttpStatus(301);
})
.run(function() {
this.test.comment('--- Done ---\n');
test.done();
});
});
它适用于casper + slimer但不适用于casper +幻像。
curl -i http://www.linternaute.com/ville/rennes2/ville-35238
输出:HTTP/1.1 301 Moved Permanently
输出casper + slimer:PASS HTTP status code is: 301
输出casper +幻像:FAIL #current: 200, #expected: 301
- >问题
Differences slimer/phantom - > 当PhantomJS收到重定向作为HTTP响应时,它不会以启动状态调用onResponseReceive,slimerJS将其调用
答案 0 :(得分:1)
好的,有关详细信息,请参阅Redirects not followed #442,如果您仍想测试301,请在此处找到解决方案:
casper.on('resource.received', function(resource) {
if(resource.url === 'http://www.linternaute.com/ville/rennes2/ville-35238'){
this.test.assertEquals(301, resource.status);
};
});
但我最终选择以这种方式测试重定向(更简单):
casper.test.begin('\n********* check 301 : ***********', 1, function(test){
casper.start('http://www.linternaute.com/ville/rennes2/ville-35238', function() {
this.test.assertEquals(this.getCurrentUrl(), 'http://www.linternaute.com/ville/rennes/ville-35238');
})
.run(function() {
this.test.comment('--- Done ---\n');
test.done();
});
});
我只是检查当前的URL对应于我的重定向...具有属性'openUrl'和'urlRedirected'的对象,它没关系-in a loop -...