Python Selenium Download продолжает загружать диалог загрузки Firefox - PullRequest
0 голосов
/ 03 октября 2019

Я работаю над простым сценарием, который загружает файл с некоторого URL-адреса, и его необходимо сохранить в нужном месте. Каким-то образом я продолжаю сталкиваться с диалогом загрузки Firefox. Я создал FirefoxProfile ():

profile = webdriver.FirefoxProfile()
profile.set_preference('browser.download.folderList', 2)
profile.set_preference('browser.download.manager.showWhenStarting', False)
profile.set_preference('browser.download.dir', '/path/to/file')
profile.set_preference('browser.helperApps.neverAsk.saveToDisk', 
"application/pdf")

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

Я в настоящее время на Python 3.4.8, 3.5 и 3.6, дают те же результаты.

Решение:

добавить profile.set_preference ("pdfjs.disabled", True)

Ответы [ 2 ]

2 голосов
/ 03 октября 2019

Я думаю, это потому, что настройка по умолчанию в Firefox для pdf - предварительный просмотр.

Попробуйте добавить следующий код:

profile.set_preference("pdfjs.disabled", True)
profile.set_preference("plugin.scan.Acrobat", "99.0")
profile.set_preference("plugin.scan.plid.all", False)
profile.set_preference("plugin.disable_full_page_plugin_for_types", "application/pdf")
0 голосов
/ 03 октября 2019

Возможно, вы пропустили назначение профиля драйверу

driver = webdriver.Firefox(firefox_profile=profile)

Проверьте правильность пути

/path/to/file

Вы задали pdf, ваш файл только в формате pdf?

 profile.set_preference('browser.helperApps.neverAsk.saveToDisk', 
    "application/pdf")

Больше флагов формата файла:

"browser.helperApps.neverAsk.saveToDisk","text/csv,application/x-msexcel,application/excel,application/x-excel,application/vnd.ms-excel,image/png,image/jpeg,text/html,text/plain,application/msword,application/xml")

Используйте код ниже:

profile = webdriver.FirefoxProfile()

profile.set_preference("browser.download.folderList", 2)

profile.set_preference("browser.download.manager.showWhenStarting", False)

profile.set_preference("browser.download.dir", 'PATH TO DESKTOP')

profile.set_preference('browser.helperApps.neverAsk.saveToDisk', 
"application/pdf")

driver = webdriver.Firefox(firefox_profile=profile)

driver.get("Name of web site")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...