SeleniumでBasic認証有のサイトにログインする

お疲れさまです。@yoshikiitoです。

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

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

こちらはChromeの例です。

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

driver.get("http://username:password@hogehoge.com");

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

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

上記のやり方でChromeとFirefoxはうまく動くのですが、IEの場合はレジストリをいじってあげないといけません。
こちらの回答が参考になります。:Basic authentication with Selenium in Internet Explorer 10 – Stack Overflow

テスト用に便利なサイト

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

その他参考

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

ABOUTこの記事をかいた人

都内でテストエンジニア&ブロガーをやっている@yoshikiitoです。

ソフトウェアエンジニアの学習方法や成長するための考え方、会社に依存せず自分の力で生きていけるエンジニアになる方法などについて興味があります。
こういった方法や考え方、自分が試したことなどをブログを通じて発信します。

仕事は主にソフトウェアテストやテスト自動化。
趣味は浦和レッズと読書と技術書を買って積むこと。

技術評論社から本を出すのが夢