Автоматическая загрузка zip-файла из firefox с помощью selenium

#python #selenium #automation

Вопрос:

У меня был сценарий selenium для загрузки файла с веб-сайта, и я использовал эти настройки, чтобы избежать появления всплывающего окна при окончательной загрузке файла, тем не менее, я получаю это всплывающее окно в конце. Мне не нужно это всплывающее окно, и мой zip-файл должен автоматически загружаться, пожалуйста, помогите мне с решением.

 profile = webdriver.FirefoxProfile()
profile.set_preference('browser.download.folderList', 2) # custom location
profile.set_preference('browser.download.manager.showWhenStarting', False)
profile.set_preference('browser.download.dir', '/tmp')
profile.set_preference('browser.helperApps.neverAsk.saveToDisk', 'application/zip')
profile.set_preference("browser.helperApps.alwaysAsk.force", False)
profile.set_preference("browser.download.manager.alertOnEXEOpen", False)
profile.set_preference("browser.download.manager.focusWhenStarting", False)
profile.set_preference("browser.download.manager.useWindow", False)
profile.set_preference("browser.download.manager.showAlertOnComplete", False)
profile.set_preference("browser.download.manager.closeWhenDone", False)
profile.set_preference("browser.download.manager.useWindow", False)
profile.set_preference("services.sync.prefs.sync.browser.download.manager.showWhenStarting", False)
profile.set_preference("pdfjs.disabled", True)
profile.update_preferences()
 

Всплывающее изображение

Ответ №1:

Это из-за «приложения/zip». Попробуйте это вместо этого:

 from selenium import webdriver

profile = webdriver.FirefoxProfile()
profile.set_preference("browser.download.folderList", 2)
profile.set_preference("browser.preferences.instantApply",True)
profile.set_preference("browser.download.manager.showWhenStarting", False)
profile.set_preference("browser.download.manager.showAlertOnComplete", False)
profile.set_preference("browser.helperApps.neverAsk.saveToDisk", "application/octet-stream") #I realy dont know why application/zip doesnt work here
profile.set_preference("browser.download.dir", 'F:\drivers')



driver = webdriver.Firefox( firefox_profile = profile,executable_path='F:\drivers\geckodriver')

driver.get('https://github.com/mozilla/geckodriver/releases')

driver.find_element_by_xpath('//a[@href="/mozilla/geckodriver/releases/download/v0.29.1/geckodriver-v0.29.1-win64.zip"]').click()