Подтвердить что ты не робот

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

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

4b9b3361

Ответ 1

Обновление 2018:

Недопустимый переключатель командной строки Chrome, см. исходный код, используйте hoju answer ниже для настройки параметров.

Original:

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

from selenium import webdriver

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

driver = webdriver.Chrome(chrome_options=options)

Ответ 2

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

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)

Ответ 3

Точная проблема, с которой я также столкнулся, пытаясь сделать то же самое, что вы хотите :)

Для хрома:

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

В блоге рассказывается все о всплывающих и скачиваемых каталогах и о том, как это сделать

Ответ 4

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

Ответ 5

Чтобы указать каталог загрузки и путь к исполняемому файлу chrome diver, используйте следующий код.

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')

измените путь в вашем коде соответственно.

Ответ 6

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

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

Снимите флажок

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

введите описание изображения здесь

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