Как обрабатывать всплывающее диалоговое окно для автоматической загрузки файла с профилем firefox в python selenium в системе Linux (Ubuntu) - PullRequest
0 голосов
/ 13 февраля 2020

Я пытаюсь загрузить файл автоматически из системного диалогового окна загрузки файлов, установив предпочтения в профиле firefox в моем python коде селена, но мой код не работает.

Браузер: Firefox 72.0 Selenium Версия: 3.14 ОС: linux Тип файла Ubuntu для загрузки: * .en c (тип зашифрованного файла) Путь firefox в linux: / usr / bin / 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", "/home/user/Downloads/tests")
profile.set_preference("browser.helperApps.neverAsk.saveToDisk", "application/x-uuencoded,application/octet-stream")
self.driver = webdriver.Firefox(firefox_profile=profile)

Windows download dialog

Ответы [ 3 ]

0 голосов
/ 18 февраля 2020

Привет @Sum У меня есть решение, моя проблема была в другом типе контента.

Используйте этот пример, чтобы решить вашу проблему и понять ваш тип контента: { ссылка }

В моем случае тип контента был "application / force- загрузить "not" application / pdf "

    profile.set_preference("pdfjs.disabled", True)
    profile.set_preference("browser.download.folderList",2)
    profile.set_preference("browser.download.manager.useWindow", False)
    profile.set_preference("browser.download.dir", "<path>")
    profile.set_preference("browser.helperApps.neverAsk.saveToDisk", "application/pdf, application/force-download")

Эти настройки работали для меня. Надеюсь, это поможет вам.

0 голосов
/ 19 февраля 2020

Правильный тип MIME для .en c - это "text / x-uuencoded". Обновлен, как показано ниже в коде, и он работает:

profile.set_preference ("browser.helperApps.neverAsk.saveToDisk", "текст / х-вещаемый")

0 голосов
/ 17 февраля 2020

У меня такая же проблема с Firefox 72.0, но с pdf файлами. Это код:

fp = webdriver.FirefoxProfile()
fp.set_preference("pdfjs.disabled", True)
fp.set_preference("browser.download.folderList", 2)
fp.set_preference("browser.download.dir", "/path")
fp.set_preference("browser.download.downloadDir", "/path")
fp.set_preference("browser.download.defaultFolder", "/path")
fp.set_preference("plugin.disable_full_page_plugin_for_types", "application/x-pdf, application/acrobat, applications/vnd.pdf, text/pdf, text/x-pdf, application/vnd.cups-pdf")
fp.set_preference("browser.helperApps.neverAsk.saveToDisk", "application/x-pdf, application/acrobat, applications/vnd.pdf, text/pdf, text/x-pdf, application/vnd.cups-pdf")
fp.set_preference("browser.helperApps.neverAsk.openFile", "application/x-pdf, application/acrobat, applications/vnd.pdf, text/pdf, text/x-pdf, application/vnd.cups-pdf")

driver = webdriver.Firefox(firefox_profile=fp) 

Я перепробовал все возможные настройки, но он всегда вызывает предупреждение о загрузке.

...