You need to make Firefox
save this particular file type automatically.
This can be achieved by setting browser.helperApps.neverAsk.saveToDisk
preference:
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()
More explanation:
browser.download.folderList
tells it not to use default Downloads
directory
browser.download.manager.showWhenStarting
turns of showing download progress
browser.download.dir
sets the directory for downloads
browser.helperApps.neverAsk.saveToDisk
tells Firefox to automatically download the files of the selected mime-types
You can view all these preferences at about:config
in the browser. There is also a very detailed documentation page available here: About:config entries.
Besides, instead of using xpath
approach, I would use find_element_by_partial_link_text()
:
driver.find_element_by_partial_link_text("DEV.tgz").click()
Also see:
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…