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認証通ってログインする操作を試してみたい場合には使わせてもらうのがいいと思います。

その他参考

ABOUTこの記事をかいた人

都内でテストエンジニア&ブロガーをやっている@yoshikiitoです。 1987年生まれ。 会社や場所に依存しない生き方・働き方を目指します。 仕事は主にGUIテスト自動化、最近ほそぼそと勉強しているのはiPhoneアプリ開発とElectron。 趣味は浦和レッズ、読書、技術書を買って積むこと。