【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();
以上です