SeleniumのDriver起動時に認証つきProxyの認証画面が出てきて困る。

これまたバッドノウハウです。もう世界からProxyなんてなくなれば良いのに(嘘

Seleniumでテストを作るときにDriverがブラウザを立ち上げますが、
認証つきProxyサーバを使っている場合認証ポップアップが出てしまってテストがとまって不便。
なので対処します。

Driverに認証情報を設定する

Proxy情報設定時にIDパスワードも一緒に設定します
こんな感じで書く。
userid:password@proxyhost:18080

	FirefoxProfile profile = new FirefoxProfile();
    profile.setPreference("network.proxy.type", 1);
    profile.setPreference("network.proxy.http", "userid:password@proxyhost");
    profile.setPreference("network.proxy.http_port", 18080);
    WebDriver driver = new FirefoxDriver(profile);

このid:PASS@アクセス先というのはSeleniumBasic認証つきのサイトにアクセスする際も使えます

ちなみにIDパスワードの設定はJava系でもものによって異なる(たとえばHTTPClientのバージョンでも異なる)ので
よく使う方は認証不要のProxyをLocalhostにたてて、そいつが認証を取るようにすると楽。