Selenium Automation сохранить файл в каталог

#python #selenium #automation #pyautogui

#python #селен #автоматизация #pyautogui

Вопрос:

Я работаю над сценарием selenium, который сохраняет файл из браузера. Скрипт работает нормально, но у меня возникают трудности с автоматизацией. Если пользователь вошел в систему, скрипт будет выполняться по назначению. Если экран заблокирован или пользователь вышел из системы, он не может найти каталог.

Сценарий, похоже, прерывается при сохранении файла в каталог.

Я создал функцию, которая использует PyAutoGui для сохранения файла в указанный каталог:

 pyautogui.hotkey('ctrl','s')
time.sleep(2)
FILE_NAME = ''   directory   filename
pyautogui.typewrite(FILE_NAME)
time.sleep(1)
pyautogui.press('enter')
time.sleep(1)
pyautogui.keyDown('left')
pyautogui.keyDown('enter')
 

Функция запускается и выдает, что задача выполнена, но файл фактически не сохраняется в каталоге.

Я предполагаю, что это связано с тем, что путь к каталогу заблокирован от изменения, когда компьютер находится в спящем режиме или вышел из системы.

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

Не уверен, есть ли другой способ доступа к каталогу. Любые советы будут с благодарностью!

Комментарии:

1. Делать это с помощью pyautogui немного излишне. Если вы хотите загрузить файл — у этого файла будет ссылка, которую вы можете получить с помощью selenium, но затем вы можете использовать curl / requests для загрузки файла.

Ответ №1:

Я бы посоветовал вам добавить дополнительные параметры при инициализации драйвера

  1. установите каталог загрузки по умолчанию
  2. отключите запрос на выбор местоположения файла

В случае Chrome необходимо настроить следующие параметры

       "download.default_directory": "DIR",
      "download.prompt_for_download": false,
      "download.directory_upgrade": true
 

Вы можете найти более подробную информацию здесь:
https://chromedriver.chromium.org/capabilities (раздел Установить каталог загрузки)

Используя этот подход, единственное, что вам нужно сделать, это нажать на ссылку для скачивания.