访问具有错误凭据的网页时,如何使用 CasperJS 测试 http 身份验证错误并获取错误代码(不能使用任何其他工具,如 SlimerJS)?
My code start with:
var casper = require('casper').create();
if (casper.cli.has("ip") === false) {
casper.echo("Usage: casper.js test sample.js --ip=<x.x.x.x>").exit();
}
casper.test.begin('Get info', 1, function suite(test) {
casper.start("http://" + casper.cli.get("ip") + ":xxxx/menta/", function() {
test.assertTitle("Operation & Management", "Correct title");
test.assertExists('form[name="loginForm"]', "login form is found");
this.fill('form[name="loginForm"]', {
'userId': 'root',
'password': '12345678'
}, false);
});
casper.then(function() {
test.assertTextExists("Welcome", "Login");
this.click('a#menu.menu1itemUnSel[tabindex="4"]');
});
...
但这当然失败了:
# Get info
PASS Correct title
PASS login form is found
FAIL Login
# type: assertTextExists
# subject: false
# text: "Welcome"
如何使用 CasperJS 进行测试?
顺便说一句,在我的情况下,我首先联系网页的登录页面以填写身份验证。凭据,然后加载“欢迎”页面。所以一开始HTTP状态已经是200OK。
我无法使用status().currentHTTPStatus
or assertHttpStatus
。
目前我将代码更改为:
casper.test.begin('Get info', 1, function suite(test) {
casper.start("http://" + casper.cli.get("ip") + ":xxxx/menta/", function() {
test.assertTitle("Operation & Management", "Correct title");
test.assertExists('form[name="loginForm"]', "login form is found");
this.fill('form[name="loginForm"]', {
'userId': 'root',
'password': '12345678'
}, false);
this.waitForText("Welcome", function then() {
this.echo('message sent');
}, function timeout() {
this.die('sending message failed');
});
});