Перейти к содержимому

Фотография

Selenium+Python как отключить в Chrome подтверждение скачивания файлов


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 7

#1 mr_Alexander

mr_Alexander

    Новый участник

  • Members
  • Pip
  • 4 сообщений
  • ФИО:Дебеев Александр

Отправлено 17 февраля 2020 - 09:39

При скачивании файлов Chrome хочет подтверждение сохранения: "Этот тип файла может повредить вашему компьютеру...". Сейчас нахожу этот файл и переименовываю его - мне не нравится. Как можно отключить?

(Версия 80.0.3987.106)

Спасибо.


  • 0

#2 Freiman

Freiman

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 591 сообщений
  • ФИО:Андрей Адеркин
  • Город:Йошкар-Ола

Отправлено 17 февраля 2020 - 10:14

1. Скачивать не Хромом, а средствами Питона. Или вообще не скачивать, если важно только проверить, валидна ли ссылка или нет.

2. Вот какой-то гуглоперевод со стековерфлоу про параметры запуска браузера: https://coderoad.ru/...шему-компьютеру


  • 0

#3 sergueik

sergueik

    Постоянный участник

  • Members
  • PipPipPip
  • 166 сообщений
  • ФИО:кузьмин сергей

Отправлено 17 февраля 2020 - 20:57

@

mr_Alexander 
как говорится разрешите поволонтирить за вас в качестве гугла 

  • 0

#4 mr_Alexander

mr_Alexander

    Новый участник

  • Members
  • Pip
  • 4 сообщений
  • ФИО:Дебеев Александр

Отправлено 20 февраля 2020 - 03:28

Всем спасибо!

 

хотелось бы все-таки видеть скачивание файла при нажатии на соответствующую кнопку,
уже реализовано (найти и переименовать скачанный файл), но желательно просто отключить запрос на подтверждение

тоже поделюсь полезными ссылками:
https://cs.chromium....n/pref_names.cc
https://peter.sh/exp...-line-switches/

после всех экспериментов имеется (не делает то, что хочется):
    chromeOptions = webdriver.ChromeOptions()
    prefs = {'safebrowsing.enabled': True,
             "select_file_dialogs.allowed": False,
             "download.prompt_for_download": False,
             "download.directory_upgrade": True,
             "profile.default_content_setting_values.automatic_downloads": 1,
             "download_restrictions": 0,
             "profile.default_content_settings.popups": 0,
             "download.default_directory": f"{self.loadpath}",
             "credentials_enable_service": False,
             "profile.password_manager_enabled": False
             }
    chromeOptions.add_experimental_option("prefs", prefs)
    chromeOptions.add_argument('--disable-extensions')
    chromeOptions.add_argument('--disable-infobars')
    chromeOptions.add_argument('--safebrowsing-disable-extension-blacklist')
    chromeOptions.add_argument('--safebrowsing-disable-download-protection')
    self.wd = webdriver.Chrome(chrome_options=chromeOptions)

если у кого-то есть настройки Chrome версии 80 и выше для отключения запроса на подтверждение скачивания файла, прошу поделиться


  • 0

#5 sergueik

sergueik

    Постоянный участник

  • Members
  • PipPipPip
  • 166 сообщений
  • ФИО:кузьмин сергей

Отправлено 20 февраля 2020 - 06:20


mr_Alexander  

 

отчетливо слышу "сделайте за меня" - прием

 

в вашем фрагменте кода почти все уже есть

 

Прикрепленные файлы

  • Прикрепленный файл  Screenshot.jpg   34,07К   7 Количество загрузок:

  • 0

#6 mr_Alexander

mr_Alexander

    Новый участник

  • Members
  • Pip
  • 4 сообщений
  • ФИО:Дебеев Александр

Отправлено 20 февраля 2020 - 08:15

отчетливо слышу "сделайте за меня" - прием

Это было "у меня не получилось, поделитесь, кто уже это сделал",
так как я не рассчитывал, что кто-то будет тратить время, то "сделайте за меня" совсем не имелось ввиду.

 

Спасибо.


  • 0

#7 sergueik

sergueik

    Постоянный участник

  • Members
  • PipPipPip
  • 166 сообщений
  • ФИО:кузьмин сергей

Отправлено 20 февраля 2020 - 14:54

извольте сударь

 


from __future__ import print_function
import sys
import re
import time
from os import getenv, path
from selenium import webdriver
from selenium.webdriver.chrome.options import Options


default_downloads_dir = getenv('USERPROFILE' if getenv('OS') == 'NT' else 'HOME') + '/' + 'Downloads'


def download_pdf(
  url = None,
  xpath = None,
  chromedriver_path = default_downloads_dir + '/' + ('chromedriver.exe' if getenv('OS') == 'NT' else 'chromedriver'),
  download_dir = default_downloads_dir ):
  options = Options()
  prefs = {
    'download.prompt_for_download': False,
    'profile.default_content_setting_values.automatic_downloads': 1,
    'download.default_directory': download_dir,
    'download.prompt_for_download': False,
    'plugins.always_open_pdf_externally': True,
    # NOTE: "plugins.plugins_list" has no effect with Chrome 65+
    'plugins.plugins_list': [{
      'enabled': False,
      'name': 'Chrome PDF Viewer'
    }]
  }


  options.add_experimental_option('prefs', prefs)
  global driver
  driver = webdriver.Chrome(chromedriver_path, chrome_options = options)
  if url is None:
    url ='file://{0}'.format(path.dirname(path.realpath(__file__)) + '/'  + 'download.html' )
  if xpath is None:
    xpath = '//a'
  driver.get(url)
  link = driver.find_element_by_xpath(xpath)
  link.click()
  time.sleep(10)
  driver.close()
  driver.quit()

 

 

     python no_prompt_download.py "https://intellipaat.com/blog/tutorial/selenium-tutorial/selenium-cheat-sheet/" "//*[@id=\"global\"]//a[contains(@href, \"Selenium-Cheat-Sheet.pdf\")]"

  • 0

#8 mr_Alexander

mr_Alexander

    Новый участник

  • Members
  • Pip
  • 4 сообщений
  • ФИО:Дебеев Александр

Отправлено 21 февраля 2020 - 03:33

 

извольте сударь

Спасибо!


  • 0


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных