Selenium IDEで生成したテストケースでファイルをダウンロードする
Selenium IDEでRuby / RSpec / Webdriverのテストケースを生成し、rspecコマンドで実行しても、
ダウンロードダイアログが表示された状態でFireFoxが終了してしまい
ファイルがダウンロードされない。
ダウンロードダイアログが表示されないように、
セットアップ時にFireFoxのプロファイルを設定しておく。
※以下の記事を参考にさせていただきました。
Selenium 2.x Web Driverでファイルをダウンロードをする
プロフェッショナルプログラマー:Selenium with JUnit(その5 Download File)
テストケースのsetup内に以下のようにprofileの設定処理を追加。
(mimeタイプはダウンロードしたいファイルの種類に応じて適宜追加する)
selenium_download.rb
class Selenium3 < Test::Unit::TestCase def setup @ff_profile = Selenium::WebDriver::Firefox::Profile.new # ダウンロードするファイルの保存先フォルダが指定してあればそれを使う @ff_profile['browser.download.useDownloadDir'] = true # ダウンロードするファイルの保存先フォルダを指定 # 0:デスクトップ # 1:ダウンロードフォルダ # 2:ダウンロードに指定された最後のフォルダ @ff_profile['browser.download.folderList'] = 2 # ダウンロードダイアログを見せないようにする @ff_profile['browser.download.manager.showWhenStarting'] = false # ダウンロードフォルダ @ff_profile['browser.download.dir'] = '/home/footprint/' # 指定したmimeタイプは有無を言わさずダウンロードする @ff_profile['browser.helperApps.neverAsk.saveToDisk'] = 'text/plain, application/vnd.ms-excel, text/csv, application/zip, text/comma-separated-values, application/octet-stream' @driver = Selenium::WebDriver.for :firefox, :profile => @ff_profile @base_url = "http://d.hatena.ne.jp" @accept_next_alert = true @driver.manage.timeouts.implicit_wait = 30 @verification_errors = [] end …
rspecコマンドで実行
$ rspec selenium_download.rb