Я не могу правильно захватить веб-страницу, с которой я вхожу в систему с помощью Casperjs. Я получаю изображение веб-страницы, у которой просто есть тег H1 с «Not Implemented». Вот скрипт ниже:Код ошибки: 402 при попытке захвата веб-страницы с помощью Casperjs
var casper = require('casper').create({
pageSettings: {
loadImages: false,//The script is much faster when this field is set to false
loadPlugins: false,
userAgent: 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36',
customHeaders:{
'Authorization':'Basic '+btoa('someusername:somepassword')
}
}
});
casper.on("resource.error", function(resourceError){
console.log('Unable to load resource (#' + resourceError.id + 'URL:' + resourceError.url + ')');
console.log('Error code: ' + resourceError.errorCode + '. Description: ' + resourceError.errorString);
});
//First step is to open SkySpark Login
casper.start().thenOpen("http://192.168.9.150:89/user/login", function() {
console.log("SkySpark website opened");
});
//Second step is to click to the Sign-in button
casper.then(function(){
this.evaluate(function(){
document.getElementById("nav-tools").children[0].click();
});
});
//Now we have to populate username and password, and submit the form
casper.then(function(){
console.log("Login using username and password");
this.evaluate(function(){
document.getElementById("username").value="someusername";
document.getElementById("password").value="somepassword";
document.getElementById("loginForm").submit();
});
});
//Wait to be redirected to the Home page, and then make a screenshot
casper.then(function(){
console.log("Make a screenshot and save it as SkySparkTens.png");
this.capture('SkySparkTens.png');
});
//prints HTML to the console
casper.then(function(){
this.wait(5000, function() {
console.log(this.getHTML());
});
});
casper.run();
Вот ответ консоли я получаю обратно:
D: \ Temp \ CasperLogin> casperjs logCasper.js
сайтSkySpark открыл
Войти с помощью имя пользователя и пароль
Невозможно загрузить ресурс (# 4URL: http://192.168.9.150:89/user/login) Код ошибки: 402. Описание: Ошибка d ownloading http://192.168.9.150:89/user/log в - сервер ответил: Не реализовано
сделать скриншот и сохранить его как SkySparkTens.png
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>501 Not Implemented</title>
</head>
<body>
<h1>Not Implemented</h1>
</body>
</html>
Вот форма, которая появляется на странице входа на сайт, который я пытаюсь получить доступ ,
<script type='text/javascript'>
userModLogin.passwordRequired = false;
userModLogin.authUri = "/user/auth";
userModLogin.redirectUri = '/ui/';
userModLogin.localeLogin = 'Login';
userModLogin.localeLoggingIn = 'Logging in';
userModLogin.localeBadCres = 'Invalid username or password';
userModLogin.autoFocusId = 'username';
window.onload = function() { userModLogin.init(false); }
</script>
</head>
<body>
<form id='loginForm' method='post' action='/user/login'>
<p class='logo'>
<img src='/brand/logo.svg' title='SkySpark' alt='SkySpark' /> </p>
<p id='err'>
Invalid username or password</p>
<p>
<label for='username'>
Username:</label>
<input type='text' id='username' name='username'placeholder='Username' /></p>
<p>
<label for='password'>Password:</label>
<input type='password' id='password' name='password' size='25' autocomplete='off' placeholder='Password' /></p>
<p>
<label for='mobile'>
<input type='checkbox' id='mobile' value='mobile' /> Mobile</label>
</p>
<p>
<input type='submit' id='loginButton' value='Login' onclick='return userModLogin.loginAuth();' /></p>
</form>
</body>
ли вы использовать Basic Auth или вы войти на этот сайт через форму? – Vaviloff
Я верю его через форму, но я точно не уверен. Я обновил свое исходное сообщение, чтобы включить форму, которая находится на странице входа, к которой я пытаюсь получить доступ. – nuccio