Chrome で Selenium + Python バインディングを使用してファイルのダウンロードを制御する方法 質問する

Chrome で Selenium + Python バインディングを使用してファイルのダウンロードを制御する方法 質問する

Selenium と Chrome Web ブラウザで使用できるオプションについて説明しているドキュメントはどこにありますか? Web ブラウザでリンクを開きたいのですが (認証情報を取得するため)、対応するファイル (.pdf または .tiff または .jpeg) をダウンロードしたくありません。Windows 7 ラップトップで、Python 2.7、Selenium 3.0.1、Chrome バージョン 54.0.2840.99 (および chromedriver.exe) を使用しています。

# Chrome web browser.
options = webdriver.ChromeOptions()
options.add_argument('--ignore-certificate-errors')  
#options.add_argument('--disable-download-notification') #doesn't seems to work 
#options.add_experimental_option("prefs", {"download.default_directory","C:\Users\xxx\downloads\Test"}) # doesn't work
#options.add_experimental_option("prefs", {"download.prompt_for_download": False}) # doesn't seems to work
#options.add_experimental_option("prefs", {'profile.default_content_settings': {'images': 2}})# this will disable image loading in the browser
options.add_argument("user-agent="+user_agent_profile)
driver_main = webdriver.Chrome(chrome_options=options)

# Opening the web application portail.
driver_main.get("https://my_link")

このトピックに関する議論は数多く見つかりましたが、解決策はどれも機能しません。例:

add_experimental_option("prefs", {"download.default_directory","C:\Users\xxx\downloads\Test"})

私には効きません。

以下も同様です:

add_experimental_option("prefs", {"download.prompt_for_download": False})

(「false」でも試します)。

その間:

add_argument("user-agent="+user_agent_profile)

効いているようです!

何が間違っているのかよく分かりません

私が抱えている問題は、file(1) file(2) .... file(99) という名前のリンクを開くたびにファイルのダウンロードが開始され、100 からは「名前を付けて保存」というポップアップ ウィンドウが開くことです。そのため、ファイルをまったくダウンロードしないようにするか、「ごみ箱」内の特定のフォルダーに移動できるようにしたいと考えています。

add_argument および add_argument で使用できるオプションを見つけるにはどうすればよいですか? Chrome://about/ を見てみましたが、直接対応するものは見つかりませんでした。

どうもありがとう。

乾杯。

ファビアン。

ベストアンサー1

デフォルト ディレクトリに宣言したパスが無効です。バックスラッシュをエスケープするか、リテラル文字列を指定してください。

options = webdriver.ChromeOptions()
options.add_experimental_option("prefs", {
  "download.default_directory": r"C:\Users\xxx\downloads\Test",
  "download.prompt_for_download": False,
  "download.directory_upgrade": True,
  "safebrowsing.enabled": True
})
driver = webdriver.Chrome(chrome_options=options)

利用可能な設定は次のとおりです。

https://cs.chromium.org/chromium/src/chrome/common/pref_names.cc

おすすめ記事