【CasperJS】ログインする方法メモ
今回やりたかったのはログインが必要なページの取得。
単純にformをsubmitすればいいページとログインボタンをクリックするとjavascriptが動いてごにょごにょやってログイン処理へと遷移するパターンがあるのでそれぞれ実装してみたのでメモしておく。
formをsubmitするパターン
ログイン画面
<form action="/login/do" method="post"> Email:<input type="text" name="email" id="email" /> Password:<input type="text" name="password" id="password" /> <input type="submit" value="Login" /> </form>
var casper = require("casper").create();
casper.start();
casper.open("http://example.com/login/");
casper.then(function() {
this.fill('form[action="/login/do"', {
document.querySelector("#email").value = "user@example.com";
document.querySelector("#password").value = "1234567890";
}, true);
});
casper.then(function() {
// ログイン後にやりたい処理を記述
});
casper.run();
onclickするパターン
ログイン画面
<form>
Email:<input type="text" name="email" id="email" />
Password:<input type="text" name="password" id="password" />
<button onclick="onLogin" id="btn-login">Login</button>
</form>
<script>
function onLogin() {
// ログイン処理・・・
}
</script>
var casper = require("casper").create();
casper.start();
casper.open("http://example.com/login/");
casper.then(function() {
this.evaluate(function() {
document.querySelector("#email").value = "user@example.com";
document.querySelector("#password").value = "1234567890";
document.querySelector("#btn-login").click()
}, true);
});
casper.then(function() {
// ログイン後にやりたい処理を記述
});
casper.run();以上です