CasperjsでログインしているWebページを正しくキャプチャできません。私はWebページを単に "実装されていない" H1タグがある写真を取得します。ここでは、以下のスクリプトです:ここではエラーコード:402 CasperjsでWebページをキャプチャしようとしています
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中http://192.168.9.150:89/user/log ownloading - サーバーは答えた:
実装されていないスクリーンショットを作成し、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>
以下の完全なスクリプトは、基本認証を使用するか、フォームを経由してそのサイトにログインしますかか? – Vaviloff
私はフォームを介してそれを信じていますが、私は正確にはわかりません。私は元の投稿を更新して、正しくアクセスしようとしているログインページにあるフォームを追加しました。 – nuccio