Firefox で CSV ファイルにアクセスすると、ダウンロードのダイアログが表示されるのですが、webdriver 上でダイアログが出てくるとハンドリングできない(たぶん)ので困る。ので、profile を設定してダイアログを表示しないようにする。そしてダウンロードするフォルダも一緒に設定する、という話。詳しくはFirefox 4 with watir webdriver: Need help using helperApps.neverAsk to save CSV without prompting - Stack OverflowとBrowser Downloads | Watir WebDriverなどを参照
pdf ファイルや ico ファイルなどブラウザで処理しないような拡張子のファイルなどは同じような手順でダウンロード可能。jpg などの画像ファイルは基本的にブラウザ上で表示するのでこの設定を入れるだけではダウンロードの状態にすることはできないみたい。
profile = Selenium::WebDriver::Firefox::Profile.new
profile['browser.download.useDownloadDir'] = true
profile['browser.download.folderList'] = 2
profile['browser.download.dir'] = './download'
profile['browser.helperApps.neverAsk.saveToDisk'] = "text/plain,
application/vnd.ms-excel, text/csv,
text/comma-separated-values, application/octet-stream"
selenium = Selenium::WebDriver.for driver,:profile=>profile
b = Watir::Browser.new selenium
b.goto 'http://example.com/foobar.csv'