Загрузка файла с использованием Python Selenium - PullRequest
2 голосов
/ 20 апреля 2020

Я пытаюсь загрузить файл, используя Python Selenium; пытаясь найти способ получить контроль над желтой подсказкой загрузки generi c, которая появляется внизу экрана при загрузке файла. Есть ли способ нажать «Сохранить как» с помощью Selenium и сохранить файл с помощью Selenium и той же сессии драйвера.

Ответы [ 2 ]

0 голосов
/ 20 апреля 2020

В Chrome, firefox вы можете легко справиться, изменив настройки браузера вручную или установив настройки, как показано в примере выше.

fxProfile.setPreference("browser.helperApps.neverAsk.saveToDisk","text/csv");

Я не очень уверен в python код для этого. Однако, если вы используете IE 11, пропустить предупреждение невозможно (да IE трудно обработать !!). В этом случае вам нужно AutoIT для работы на консоли, чтобы нажать кнопку Сохранить. Сделайте pip установить PyAutoIt. Ниже приведена ссылка, чтобы помочь вам в том же https://pypi.org/project/PyAutoIt/

Недостатки AutoIT: -

  1. Требуется наличие консоли на машине.
  2. Во время выполнения фокус должен быть на одном экране. Вы можете использовать JSExecutor для выполнения javascript с фокусом.

Дайте мне знать, если что-то еще нужно по этому поводу.

0 голосов
/ 20 апреля 2020

Вы можете изменить настройки загрузки драйверов, например, с помощью firefox. Когда файл запрашивается для загрузки, он не создает всплывающее окно и сохраняет в указанном ниже месте.

FirefoxProfile fxProfile = new FirefoxProfile();

fxProfile.setPreference("browser.download.folderList",2);
fxProfile.setPreference("browser.download.manager.showWhenStarting",false);
fxProfile.setPreference("browser.download.dir","c:\\mydownloads");
fxProfile.setPreference("browser.helperApps.neverAsk.saveToDisk","text/csv");

WebDriver driver = new FirefoxDriver(fxProfile);
...