Загрузка файла в указанном месте через python и selenium с помощью драйвера Chrome

Я пытаюсь автоматически загрузить некоторые ссылки через функциональность щелчка selenium, и я использую chrome webdriver и python в качестве языка программирования. Как я могу выбрать каталог загрузки через программу python, чтобы она не загружалась в каталог загрузок по умолчанию. Я нашел решение для Firefox, но там в окне загрузка высвечивается каждый раз, когда он нажимает на ссылку, которая не происходит в Chrome.

4 ответов


вы можете создать профиль для chrome и определить местоположение загрузки для тестов. Вот пример:

from selenium import webdriver

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

driver = webdriver.Chrome(chrome_options=options)

Я обнаружил, что принятое решение не работает, однако это небольшое изменение:

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)

Если вы используете дистрибутив 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)

Если вы используете скрипт только на локальном компьютере, используйте это решение

нажмите меню -> Настройка -> Показать дополнительные настройки... - >Загрузки

теперь снимите

спросите, где сохранить каждый файл перед загрузкой

enter image description here

надеюсь, это поможет вам:)