2021年5月26日水曜日

Selenium でダイアログなしでファイルをダウンロードする方法

Selenium でダイアログなしでファイルをダウンロードする方法

概要

重要なのは Firefox を使わずに Chrome を使う点です

参考記事

環境

  • macOS 11.3.1
  • Ruby 3.0.0
    • selenium 4.0.0.beta3
  • Chrome

サンプルコード

一部抜粋です ポイントはプリファレンスを使って Chrome にオプションを渡すところです

download_pref = {
  'prompt_for_download' => false,
  'default_directory' => '/tmp',
  'directory_upgrade' => true
}
options = Selenium::WebDriver::Chrome::Options.new
options.add_preference(:download, download_pref)

@driver = Selenium::WebDriver.for :chrome, options: options

最後に

自分が試した限りこれならダイアログなしでファイルのダウンロードができました 念を押しますが Firefox はハマるので諦めて ChromeDriver を使いましょう

なお Selenium は localhost でも動作しましたし remote (docker) でも動作しました

0 件のコメント:

コメントを投稿