我正在尝试测试具有基本身份验证功能的网页。
这是我到目前为止所做的:
var casper = require('casper').create({
verbose: true,
logLevel: 'debug'
});
casper.options.viewportSize = {width: 1366, height: 667};
casper.start();
casper.open( 'http://internal/page.php', {
method: 'get',
headers: {
'Authorization': 'Basic '+btoa('username:password')
}
}).then(function(response) {
this.fill('form[action="page2.php"]', {
cattype: 'BLAH2',
needdate: '04/21/2014'
}, true);
});
casper.then(function() {
this.capture('screenshot-form-entry.png');
});
casper.run(function() {
this.exit();
});
页面打开正确(无身份验证问题)。
表单字段设置正确。
问题在于表单提交。
它表示状态=失败。
我查看服务器日志,它给出了401。
为什么凭据未传递给表单提交? 或者问题应该是,我如何获得凭证?
答案 0 :(得分:1)
经过几天的挖掘,我会用我发现的东西回答我自己的问题。
我不确定这是一个错误还是它的工作方式。
要获得基本授权,您必须在 pageSettings 中设置用户名/密码。
以下是更改的代码。
var casper = require('casper').create({
verbose: true,
logLevel: 'debug',
pageSettings: {
userName: 'uid',
password: 'pwd'
}
});
casper.start();
casper.open( 'http://internal/page.php').then(function(response) {
this.fill('form[action="page2.php"]', {
cattype: 'BLAH2',
needdate: '04/21/2014'
}, true);
});
casper.then(function() {
this.capture('screenshot-form-entry.png');
});
casper.run(function() {
this.exit();
});