Digest認証が設定しているサイトでスクリーンショットを撮りたい。
「capybara-webkitでwebページのスクリーンショットを撮る」を見つけたのでこれを使うことにした。
ヘッダーを操作メソッドがあるので、Digest認証もなんとかなるかと思ったけどダメだった。
cnonceの生成にリクエストするuriが含まれるので、CSSや画像を取得する際に401 Not Authorizeになっちゃう。
GET /auth/area/index.html HTTP/1.1
-> 200 OK
GET /auth/area/style.css HTTP/1.1
-> 401 Unauthorized
GET /auth/area/header.jpg HTTP/1.1
-> 401 Unauthorized
ってな具合。リクエスト毎に変えなくちゃだめって事だな。
capybara-webkiのissuseで認証はどうするの?的な話があったけど、
ヘッダーの設定で対応できるでしょってことでクローズされてる。
capybara-webkitのrubyソースいじってもどうにもならなそうなので、QTWebKitを調べると、
authenticationRequiredというシグナルがあり認証が必要な場合をハンドリングできそう。
で、認証をハンドリングできたのでAuthorizeコマンドとして実装してみた。
ソースはこちら。cloneしてextconf.rbを実行すればOK.
https://github.com/beatspace9/capybara-webkit/tree/digest-auth
上記を
利用方法。
5行目はgitでcloneしたリポジトリを利用するようパスを書き換える必要ある。
22行目でユーザー名とパスワードの設定
0 件のコメント:
コメントを投稿