Как скачать файл с помощью удаленного веб-драйвера Firefox? - PullRequest
0 голосов
/ 23 октября 2018

Я попытался адаптировать несколько существующих решений ( 1 , 2 ) для удаленного веб-драйвера Firefox, работающего в selenium / standalone-Контейнер Firefox Docker :

options = Options()
options.set_preference('browser.download.dir', '/src/app/output')
options.set_preference('browser.download.folderList', 2)
options.set_preference('browser.download.manager.showWhenStarting', False)
options.set_preference('browser.helperApps.alwaysAsk.force', False)
options.set_preference('browser.helperApps.neverAsk.saveToDisk', 'application/pdf')
options.set_preference('pdfjs.disabled', True)
options.set_preference('pdfjs.enabledCache.state', False)
options.set_preference('plugin.disable_full_page_plugin_for_types', False)

cls.driver = webdriver.Remote(
    command_executor='http://selenium:4444/wd/hub',
    desired_capabilities={'browserName': 'firefox', 'acceptInsecureCerts': True},
    options=options
)

Навигация и нажатие на соответствующую кнопку загрузки работает нормально, но файл никогда не появляется в каталоге загрузки.Я проверил все, что могу придумать:

  • Пользователь в контейнере Selenium может создавать файлы в / src / app / output, и эти файлы видны в операционной системе хоста.
  • Я могу успешно загрузить файл с помощью браузера на рабочем столе.
  • Тип содержимого ответа: application/pdf.

Чего мне не хватает?

1 Ответ

0 голосов
/ 31 октября 2018

Оказалось, что другие изменения, внесенные во время исследования, приводили к тому, что сервер возвращал текстовый / простой документ, а не файл PDF.Для справки, это самый простой набор опций, который я смог получить:

options.set_preference('browser.download.dir', DOWNLOAD_DIRECTORY)
options.set_preference('browser.download.folderList', 2)
options.set_preference('browser.helperApps.neverAsk.saveToDisk', 'application/pdf')
options.set_preference('pdfjs.disabled', True)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...