Ich habe hunger

あふりかエンジニア、アフリカ向けのB2BのSaaSを開発する

Selenium Webdriverで動かすFireFoxのプロファイルの設定

rubySelenium Webdriver触ってる時に、
firefoxを起動するたびに新しいプロファイルで起動されるのが鬱陶しかったので
プロファイルをオプションに渡して起動できないか調べてみた。

FirefoxSelenium用のプロファイルを作る

ここを参考にした
http://support.mozilla.org/ja/kb/profile-manager-create-and-remove-firefox-profiles?redirectlocale=ja&redirectslug=Managing+profiles#w_cucgciaaacceczcuckaiccaciioiaoao:プロファイルの管理


実際の手順は非常に簡単で、

 /Applications/Firefox.app/Contents/MacOS/firefox-bin -p

と打ち込んで、出てきたプロファイルマネージャが起動するので、
Create Profileとかプロファイルの作成を押して、好きな名前を付けてください。

その作成したプロファイルでFirefoxを起動して、
Facebookにログインするなり、
何かにログインしたりして、プロファイルの状態を整えてあげてください。

これで、準備は完了です。

rubyFirefox用のプロファイルを渡してあげてる

ページ中段のFirefoxの項の「Using an existing profile」に書いてあります。
https://code.google.com/p/selenium/wiki/RubyBindings:SeleniumのRubyBindings

driver = Selenium::WebDriver.for(:firefox, :profile => "my-existing-profile")

こうやって渡すことも出来るんですが、多分これだとテストのために動かしたキャッシュとかログイン情報が残ってしまう気がします。


default_profile = Selenium::WebDriver::Firefox::Profile.from_name "default"
default_profile.native_events = true

driver = Selenium::WebDriver.for(:firefox, :profile => default_profile)


で、こうやってFireFoxのProfileのインスタンスを作ってあげることで、
元のプロファイルには影響を及ぼさず
色々無茶しても大丈夫っぽいです。



こんな感じで、FireFoxのProfileをSeleniumに渡して扱えたので、
ログインする時のテストも出来るし、自動ログイン状態でのテストも出来るようになりましたー。