Selenium Webdriverで動かすFireFoxのプロファイルの設定
rubyでSelenium Webdriver触ってる時に、
firefoxを起動するたびに新しいプロファイルで起動されるのが鬱陶しかったので
プロファイルをオプションに渡して起動できないか調べてみた。
FirefoxでSelenium用のプロファイルを作る
実際の手順は非常に簡単で、
/Applications/Firefox.app/Contents/MacOS/firefox-bin -p
と打ち込んで、出てきたプロファイルマネージャが起動するので、
Create Profileとかプロファイルの作成を押して、好きな名前を付けてください。
その作成したプロファイルでFirefoxを起動して、
Facebookにログインするなり、
何かにログインしたりして、プロファイルの状態を整えてあげてください。
これで、準備は完了です。
rubyでFirefox用のプロファイルを渡してあげてる
ページ中段の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に渡して扱えたので、
ログインする時のテストも出来るし、自動ログイン状態でのテストも出来るようになりましたー。