Как побороть Firefox подсказку для сохранения файла - PullRequest
0 голосов
/ 20 января 2020

пытается получить python селен для сохранения файла Excel (.xlsx) через браузер Firefox. Моя процедура автоматизации была прервана из-за запроса сохранить или открыть файл, к которому Firefox обращается. Я пытался найти обходные пути и решения в Интернете, но ни одно из этих решений не помогло. Я пробовал этот поток reddit , не работал, этот поток stackoverflow и этот другой поток stackoverflow также не помогли.

Мой текущий код таков:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# Starting Firefox
fp = webdriver.FirefoxProfile()
fp.set_preference("browser.download.folderList", 1) # 0 means to download to the desktop, 1 means to download to the default "Downloads" directory, 2 means to use the directory
fp.set_preference("browser.helperApps.alwaysAsk.force", False)
mime_types = [
    'text/plain',
    'attachment/vnd.ms-excel',
    'text/csv',
    'application/csv',
    'text/comma-separated-values',
    'application/download',
    'application/octet-stream',
    'binary/octet-stream',
    'application/binary',
    'application/x-unknown',
    'application/excel',
    'attachment/csv',
    'attachment/excel'
]
fp.set_preference("browser.helperApps.neverAsk.saveToDisk", ",".join(mime_types))
fp.set_preference("browser.preferences.instantApply",True)
fp.set_preference("browser.download.manager.showWhenStarting",False)
browser = webdriver.Firefox(firefox_profile=fp, firefox_binary=None, timeout=30, capabilities=None, proxy=None, executable_path='/Users/cadellteng/Downloads/geckodriver', options=None, firefox_options=None, service_args=None, desired_capabilities=None, log_path=None, keep_alive=True)
browser.get('https://sg.quickHR.co')

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

1 Ответ

1 голос
/ 20 января 2020

Проблема в типах пантомимы. Вы можете получить MIME-тип на вкладке Сеть - Заголовки ответа content-type.

Попробуйте использовать ниже:

mime_types = [
    'text/plain',
    'attachment/vnd.ms-excel',
    'text/csv',
    'application/csv',
    'text/comma-separated-values',
    'application/download',
    'application/octet-stream',
    'binary/octet-stream',
    'application/binary',
    'application/x-unknown',
    'application/excel',
    'attachment/csv',
    'attachment/excel'
    'application/vnd.ms-excel',
    'application/msexcel',
    'application/x-msexcel',
    'application/x-ms-excel',
    'application/x-excel',
    'application/x-dos_ms_excel',
    'application/xls',
    'application/x-xls',
    'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...