FirefoxDriver TipsまたはSelenium2.0(WebDriver)でFirefoxのアドオンを使う方法

Twitterで呟いたら、情報を頂きましたので、まとめとして残しておきます。

Selenium

参考サイト

以下のサイトを参考にしています。

Module: Selenium

※ RubyのRSpecを前提として記載していますが、方法としては他の言語でも同じになります。

FirefoxDriver

Selenium IDEで[テストケースをエクスポート]->[Ruby/RSpec/WebDriver]でファイルに出力すると、以下の様に出力されます。

before(:each) do
  @driver = Selenium::WebDriver.for :firefox
  @base_url = "http://xxx"
  @driver.manage.timeouts.implicit_wait = 30
  @verification_errors = []
end

通常このまま Firefox を起動すると新規のプロファイルが作成され、それが読み込まれてしまいます。そうすると、既存のプロファイルでアドオンを有効化していたとしても、有効になりません。

既存のプロファイルを指定する方法

上記の通り、FirefoxDriverを用いてFirefox を起動すると新規のプロファイルが作成され、それが読み込まれてしまいます。しかし、既存のプロファイルを指定して起動させることも可能です。

before(:each) do
  @driver = Selenium::WebDriver.for :firefox, :profile => "xxx"
  @base_url = "http://yyy"
  @driver.manage.timeouts.implicit_wait = 30
  @verification_errors = []
end

xxxの部分はプロファイル名を指定します。プロファイル名についてはプロファイルマネージャから確認できます。

起動するFirefoxを指定する方法

Firefoxをデフォルトのインストール先と異なる位置にインストールしている場合1、何も指定しないとFirefoxDriverがFirefoxの実行ファイルを見つけられず、起動に失敗します。この場合、実行ファイルの位置を指定する必要があります。

Selenium::WebDriver::Firefox::Binary.path= '/xxx'

xxxの部分にFirefox の実行ファイルを指定します。


  1. 私はVMware上のWindowsのFirefoxとMac上のFirefoxとして別々にインストールしていたので必要でした。