SeleniumでChromeを起動した際に、デフォルトのダウンロード保存先を指定する方法
SeleniumでChromeを起動した際のデフォルトダウンロード保存先を指定する
SeleniumでChromeを使う場合に、デフォルトのダウンロード保存先を指定する方法が分からなかったので調べたメモです。
Win + Rubyで確認しています。
リファレンス
Selenium実践入門 ―― 自動化による継続的なブラウザテスト (WEB+DB PRESS plus)
- 作者: 伊藤望,戸田広,沖田邦夫,宮田淳平,長谷川淳,清水直樹,Vishal Banthia
- 出版社/メーカー: 技術評論社
- 発売日: 2016/02/02
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (4件) を見る
やり方
色々調べましたが、プログラム内で直接定義するやり方は分からず、Chromeで使うUserDataのファイルをプログラム内で指定することで実現しました。自分が普段使っているChromeのUserDataとは別のファイルを設定できるので、ファイルをリポジトリに入れて使うこともできます。
CHROME_USER_DATA_PATH = Dir.pwd + "User Data\Default" # 絶対Pathで指定 caps = Selenium::WebDriver::Remote::Capabilities.chrome("chromeOptions" => {"args" => ["user-data-dir=#{CHROME_USER_DATA_PATH}"]}) driver = Selenium::WebDriver.for :chrome, :desired_capabilities => caps
内容
Selenium::WebDriver::Remote::Capabilities
クラスのchrome
メソッドを使って、Chrome用のdesired_capabilitiesを作ることができます。
ChromeOptionsを使うことで、色々な細かい設定ができるのですが、ここでUserDataのパスを指定して、自分の好きな設定を読み込ませることができます。そのため、あらかじめChromeの操作でダウンロード保存先を希望のものに変更しておいて、それで生成されたUserDataを使うことで、SeleniumでChromeを起動した際のダウンロード保存先を任意のものに設定することができます。
ちなみに、ファイルとして置くのは(ダウンロード保存先を指定したい場合には)AppData\Local\Google\Chrome\User Data\Default\Preferences
のファイルだけで良いようでした。Macの場合には~/Library/Application Support/Google/Chrome/Default/Preferences
にあるようです。(Macの動作確認はしていないです)
- 作者: Dima Kovalenko,玉川紘子,太田健一郎,笹井崇司
- 出版社/メーカー: オライリージャパン
- 発売日: 2015/09/18
- メディア: 大型本
- この商品を含むブログ (4件) を見る