Selenium Webdriver(Python)を使用して、数千のファイルのダウンロードを自動化しています。 Chromeのダウンロードフォルダーをプログラムで設定したい。 this を読んだ後、私はこれを試しました:
chromepath = '/Users/thiagomarzagao/Desktop/searchcode/chromedriver'
desired_caps = {'prefs': {'download': {'default_directory': '/Users/thiagomarzagao/Desktop/downloaded_files/'}}}
driver = webdriver.Chrome(executable_path = chromepath, desired_capabilities = desired_caps)
ダメ。ダウンロードは引き続きデフォルトのダウンロードフォルダー( "/ Users/thiagomarzagao/Downloads")に移動します。
何かご意見は?
(Python 2.7.5、Selenium 2.2.0、Chromedriver 2.1.210398、Mac OS X 10.6.8)
次は私のために働いた:
chromeOptions = webdriver.ChromeOptions()
prefs = {"download.default_directory" : "/some/path"}
chromeOptions.add_experimental_option("prefs",prefs)
chromedriver = "path/to/chromedriver.exe"
driver = webdriver.Chrome(executable_path=chromedriver, chrome_options=chromeOptions)
ソース: https://sites.google.com/a/chromium.org/chromedriver/capabilities
まだ問題が解決せず、上記の解決策が機能しない場合は、ダウンロードパスに次のスラッシュ( '\')を追加します。
私のものは次のように見えました。
if browser == 'chrome':
options = webdriver.ChromeOptions()
options.add_argument("--start-maximized")
prefs = {"profile.default_content_settings.popups": 0,
"download.default_directory": r"C:\Users\user_dir\Desktop\\", # IMPORTANT - ENDING SLASH V IMPORTANT
"directory_upgrade": True}
options.add_experimental_option("prefs", prefs)
return webdriver.Chrome(executable_path=Base.chromedriver_dir, chrome_options=options)
あなたも必要だと思う
"directory_upgrade": true
Chrome 'Prefrences'ファイル、ローカルWindowsインストールchromeバージョン28.0.1500.95 m、次のダウンロードオプションを使用)で辞書を直接使用する:
"download": {
"default_directory": "C:\\Users\\rdub\\Desktop",
"extensions_to_open": ""
},
デスクトップではなくデフォルトの場所を取得します。これに変更すると:
"download": {
"default_directory": "C:\\Users\\rdub\\Desktop",
"directory_upgrade": true,
"extensions_to_open": ""
},
デスクトップの場所を取得します。
以下を試してください:
desired_caps = {'prefs': {'download': {'default_directory': '/Users/thiagomarzagao/Desktop/downloaded_files/', "directory_upgrade": true, "extensions_to_open": ""}}}
この質問のすべてのアンサーを試しますが、私のinUbuntu 16.10では機能しません。そこで、変数にos.environを使用して変更を追加しますXDG_DOWNLOAD_DIR。これは機能しませんが、役立つと思います。
あれは:
os.environ['XDG_DOWNLOAD_DIR'] = default_download_directory
私にとって完璧に機能するという実際の変更は、コマンドxdg-user-dirs-updateを介してダウンロードフォルダをセットアップすることです実行時のシステムコール:
os.system("xdg-user-dirs-update --set DOWNLOAD " + default_download_directory)
したがって、ダウンロードディレクトリのセットアップに関連するすべてのコードは次のとおりです。
import os
from Selenium import webdriver
default_download_directory = str(os.path.dirname(os.path.abspath(__file__))) + "/download"
os.environ['XDG_DOWNLOAD_DIR'] = default_download_directory
os.system("xdg-user-dirs-update --set DOWNLOAD " + default_download_directory)
desired_caps = {
'prefs': {
'download': {
'default_directory': str(os.path.dirname(os.path.abspath(__file__))) + "/download",
"directory_upgrade": "true",
"extensions_to_open": ""
}
}
}
options = webdriver.ChromeOptions()
options.add_argument("download.default_directory=" + str(os.path.dirname(os.path.abspath(__file__))) + "/download")
browser = webdriver.Chrome(chrome_options=options, desired_capabilities=desired_caps)
なぜ実装が機能しないのか疑問に思っている人のために:動作させるにはフルパスを指定する必要があります。例えば「/ Users/you/dlfolder」は機能しませんが、「C:/ Users/you/dlfolder」は機能します。