Загрузка файла через Selenium Webdriver в Python
Я пишу программу для автоматизации веб-взаимодействия с помощью Selen WebDriver в Python. Я застрял на последнем шаге, когда нажимаю на кнопку "скачать" в скрипте, на экране появляется всплывающее окно с выбранной по умолчанию опцией "Открыть с помощью". Я хочу, чтобы моя программа сначала нажала на опцию "сохранить файл", а затем на "ОК". Я использовал следующий фрагмент кода для настройки профиля Firefox
profile = webdriver.FirefoxProfile()
profile.set_preference('browser.download.folderList', 2)
profile.set_preference('browser.download.manager.showWhenStarting', False)
profile.set_preference('browser.download.dir', os.getcwd())
profile.set_preference('browser.helperApps.neverAsk.saveToDisk',"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
Одно из моих наблюдений заключается в том, что когда всплывающее окно выглядит так
с опцией "Делать это автоматически для файлов, подобных этому с сегодняшнего дня" можно щелкнуть (с помощью флажка), тогда вышеупомянутый фрагмент кода работает отлично, но когда та же опция не активна (как показано на рисунке ниже), тогда приведенный выше код для настройки профиль не работает. Кто-нибудь может мне помочь в этой ситуации?
1 ответ
Вот ответ на ваш вопрос:
Пока ты работаешь с новым FirefoxProfile
, использовать set_preference
способ настроить профиль таким образом, чтобы нажимать на Save
а также Ok
и это не прерывается в процессе загрузки. Вы можете установить конфигурацию следующим образом:
profile = webdriver.FirefoxProfile()
profile.set_preference("browser.download.dir",os.getcwd());
profile.set_preference("browser.download.folderList",2);
profile.set_preference("browser.helperApps.neverAsk.saveToDisk", "application/csv,application/excel,application/vnd.msexcel,application/vnd.ms-excel,text/anytext,text/comma-separated-values,text/csv,application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/octet-stream");
profile.set_preference("browser.download.manager.showWhenStarting",False);
profile.set_preference("browser.helperApps.neverAsk.openFile","application/csv,application/excel,application/vnd.msexcel,application/vnd.ms-excel,text/anytext,text/comma-separated-values,text/csv,application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/octet-stream");
profile.set_preference("browser.helperApps.alwaysAsk.force", False);
profile.set_preference("browser.download.manager.useWindow", False);
profile.set_preference("browser.download.manager.focusWhenStarting", False);
profile.set_preference("browser.download.manager.alertOnEXEOpen", False);
profile.set_preference("browser.download.manager.showAlertOnComplete", False);
profile.set_preference("browser.download.manager.closeWhenDone", True);
profile.set_preference("pdfjs.disabled", True);
Дайте мне знать, если это отвечает на ваш вопрос.