Ошибка загрузки файла с использованием Chrome (chromedriver), Selenium, Python - PullRequest
0 голосов
/ 26 марта 2020

Я пытаюсь использовать Selenium / Python Chrome (chromedriver) , чтобы нажать на гиперссылку, которая приведет к загрузке файла .zip.

У меня есть это работает, но при попытке сохранения файла я получаю "Failed - Download error" в левом нижнем углу области сообщений браузера.

Это ничего не говорит о правах доступа к каталогу.


Перед запуском сценария каталог не существует.

В коде я проверяю, существует ли он и, если нет, создает его, и проверил, что каталог создан .


Затем я смотрю на разрешение Windows для каталога, и оно выглядит следующим образом:

Permissions for Everyone    Allow

 Full control       check mark
 Modify             check mark
 Read & execute     check mark
 List folder contents       check mark
 Read               check mark
 Write              check mark
 Special Permission     <no check mark here>

У меня отключена вся защита от вирусов и безопасности.


Что может быть не так?

Как мне отладить это и выяснить, почему именно оно говорит «Ошибка - Ошибка загрузки» и получить больше информации об этом?


Есть ли что-нибудь в Chrome (хромедрайвер), селен что может предоставить какую-либо информацию?

F-12 => Консоль ничего не перечисляет.


Если я нажму на стрелку вверх ^ в сообщении загрузки файла встроенного браузера в в левом нижнем углу я вижу «Больше информации».

Я нажимаю на это и получаю это:

https://support.google.com/chrome/answer/2898334?p=ui_download_errors&hl=en&ctx=1&visit_id=637208339655562393-3244565674&rd=1

I go из-за этого я не вижу своего указанного c сообщения об ошибке: «Ошибка - Ошибка загрузки»


  1. Моя сеть solid
  2. Мой диск не полный
  3. Я проверил разрешения, они кажутся нормальными

Ничто другое не применимо.


Есть ли какое-то потенциальное разрешение windows над надписью "Все", что имеет доступ только для чтения?

Как узнать, под каким пользователем выполняется скрипт python / Selenium? (Я нахожусь внутри JetBrains PyCharm - он должен просто запускаться от имени пользователя, под которым я вошел в систему.)

from selenium.webdriver.chrome.options import Options

chrome_options = Options()

chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--disable-dev-shm-usage')
chrome_options.add_argument('--disable-gpu')
chrome_options.add_argument('--disable-popup-blocking')
chrome_options.add_argument('--window-size=1440,900')
chrome_options.add_argument('--disable-extensions')
chrome_options.add_argument('--ignore-certificate-errors')
chrome_options.add_argument('--test-type')
chrome_options.add_argument('--allow-running-insecure-content')
chrome_options.add_argument('--disable-web-security')

# here I have some code where I am setting: self.download_dir from a .ini file
# and then assigning it in prefs (below)

# here I also check to see if the directory exists,
# and if not, I os.makedirs(self.download)

prefs = {
'download.default_directory': self.download_dir,
'download.prompt_for_download': False,
'download.directory_upgrade': True,
"download.extensions_to_open": '',
"plugins.always_open_pdf_externally": True,
'safebrowsing.enabled': True,
'profile.default_content_settings.images': 2,
'profile.managed_default_content_settings.geolocation': 2,
'profile.managed_default_content_settings.images': 2,
'safebrowsing.disable_download_protection': True}


chrome_options.add_experimental_option('prefs', prefs)

self.driver = Chrome(options=chrome_options)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...