SeleniumWebdriverを使ってテストの自動化を行う際、BASIC認証付きの開発用サイトにログインして操作したい、というシチュエーションがあります。

Basic認証のあるサイトのURLを普通に開くと、以下の画像のような入力欄が出てきます。

Window と htaccess cman jp sample go basic

こちらはChromeの例です。

このダイアログを操作してユーザ名とパスワードを打ち込んでログインボタンを押下してもいいのですが、もっと簡単な方法は

driver.get("http://username:[email protected]");

です。URLの中にユーザ名とパスワードを含めてgetメソッドに渡してあげると開くことが出来ます。

注意:IEDriverはもうひと工夫必要

上記のやり方でChromeとFirefoxはうまく動くのですが、IEの場合はレジストリをいじってあげないといけません。

こちらの回答が参考になります。:Basic authentication with Selenium in Internet Explorer 10 – Stack Overflow

テスト用に便利なサイト

上記画像も、htaccessサンプル/BASIC認証(パスワード認証)から取らせて頂きました。BASIC認証有りのサンプルを公開してくださっているので、SeleniumWebDriverからBASIC認証通ってログインする操作を試してみたい場合には使わせてもらうのがいいと思います。

その他参考

あとはこの記事書いてから気づいたのですが、Selenium実践入門にこの方法が書いてありました。さすが、この本よく読むとSelenium使っててつまるポイントの対処法が大体書いてあるんですよね。

Selenium実践入門 ―― 自動化による継続的なブラウザテスト (WEB+DB PRESS plus)