Ответ 1
Вам нужно сделать Firefox
автоматически сохранить этот тип файла.
Это может быть достигнуто установкой browser.helperApps.neverAsk.saveToDisk
предпочтения:
from selenium import webdriver
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/x-gzip")
driver = webdriver.Firefox(firefox_profile=profile)
driver.get("Name of web site I'm grabbing from")
driver.find_element_by_xpath("//a[contains(text(), 'DEV.tgz')]").click()
Больше объяснений:
-
browser.download.folderList
указывает, что не использовать каталогDownloads
по умолчанию -
browser.download.manager.showWhenStarting
показывает ход выполнения загрузки -
browser.download.dir
устанавливает каталог для загрузки -
browser.helperApps.neverAsk.saveToDisk
сообщает, что Firefox автоматически загружает файлы выбранногоmime-types
Вы можете просмотреть все эти настройки в about:config
в браузере. Здесь также доступна очень подробная страница документации: О файле: config entries.
Кроме того, вместо использования подхода xpath
я бы использовал find_element_by_partial_link_text()
:
driver.find_element_by_partial_link_text("DEV.tgz").click()
Также смотрите: