web-dev-qa-db-ja.com

pythonとpython $ ===およびSelenium Chromeドライバーを使用して指定した場所にファイルをダウンロードする

Seleniumのクリック機能を使用していくつかのリンクを自動的にダウンロードしようとしていますが、プログラミング言語としてchrome webdriverおよびpythonを使用しています。どのように選択できますかダウンロードディレクトリ pythonプログラムを使用して、デフォルトのダウンロードディレクトリにダウンロードされないようにします。Firefoxのソリューションを見つけましたが、クリックするたびにダウンロードダイアログがポップアップし続けますChromeでは発生しないリンク上。

15
Shubham Goyal

更新2018:

無効なChrome=コマンドラインスイッチ、 ソースコード の使用 hojuを参照環境設定を設定するには、以下のanswer を使用します。

元の:

chromeのプロファイルを作成し、テストのダウンロード場所を定義できます。以下に例を示します。

from Selenium import webdriver

options = webdriver.ChromeOptions() 
options.add_argument("download.default_directory=C:/Downloads")

driver = webdriver.Chrome(chrome_options=options)
10
Sarunas Urbelis

受け入れられた解決策は機能しませんでしたが、このわずかな変更は機能しました:

import webdriver
chrome_options = webdriver.ChromeOptions()
prefs = {'download.default_directory' : '/path/to/dir'}
chrome_options.add_experimental_option('prefs', prefs)
driver = webdriver.Chrome(chrome_options=chrome_options)
54
hoju

Linuxディストリビューションを使用している場合

このコードを使用

prefs = {'download.Prompt_for_download': False,
         'download.directory_upgrade': True,
         'safebrowsing.enabled': False,
         'safebrowsing.disable_download_protection': True}

options.add_argument('--headless')
options.add_experimental_option('prefs', prefs)
driver = webdriver.Chrome('chromedriver.exe', chrome_options=options)
driver.command_executor._commands["send_command"] = ("POST", '/session/$sessionId/chromium/send_command')
driver.desired_capabilities['browserName'] = 'ur mum'
params = {'cmd': 'Page.setDownloadBehavior', 'params': {'behavior': 'allow', 'downloadPath': r'C:\chickenbutt'}}
self.driver.execute("send_command", params)
0
Alex Montoya

あなたがしたいこととまったく同じことをしようとしている間に私が直面した正確な問題:)

クロムの場合:

from Selenium import webdriver
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)
browser=webdriver.Chrome(<chromdriver.exe path>, options=options)

Firefoxの場合:答えはこのブログに従ってください: https://srirajeshsahoo.wordpress.com

ブログには、ポップアップおよびダウンロードディレクトリとその方法についてのすべてが記載されています

0

ダウンロードディレクトリとchromeのダイバー実行可能パスを提供するには、次のコードを使用します。

from Selenium import webdriver
options = webdriver.ChromeOptions() 
options.add_argument("download.default_directory=C:/Your_Directory")
driver = webdriver.Chrome(options=options ,executable_path='C:/chromedriver')

それに応じてコードのパスを変更します。

0
vsnahar