#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:
Я бы посоветовал вам добавить дополнительные параметры при инициализации драйвера
- установите каталог загрузки по умолчанию
- отключите запрос на выбор местоположения файла
В случае Chrome необходимо настроить следующие параметры
"download.default_directory": "DIR",
"download.prompt_for_download": false,
"download.directory_upgrade": true
Вы можете найти более подробную информацию здесь:
https://chromedriver.chromium.org/capabilities (раздел Установить каталог загрузки)
Используя этот подход, единственное, что вам нужно сделать, это нажать на ссылку для скачивания.