Ok jusqu'à présent, ma programmation va sur le site Web à partir duquel je souhaite télécharger le lien et le sélectionner, puis la boîte de dialogue Firefox s'affiche et je ne sais pas quoi faire. je veux enregistrer ce fichier dans un dossier sur mon bureau. Je l'utilise pour une construction nocturne, j'ai donc besoin de cela pour fonctionner. Veuillez aider.
Voici mon code qui saisit le lien de téléchargement à partir du site Web:
driver = web driver.Firefox()
driver.implicitly_wait(5)
driver.get("Name of web site I'm grabbing from")
driver.find_element_by_xpath("//a[contains(text(), 'DEV.tgz')]".click()
Vous devez faire en sorte que Firefox
enregistre automatiquement ce type de fichier particulier.
Ceci peut être réalisé en définissant la préférence 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()
Plus d'explication:
browser.download.folderList
Lui dit de ne pas utiliser le répertoire Downloads
par défautbrowser.download.manager.showWhenStarting
Affiche la progression du téléchargementbrowser.download.dir
Définit le répertoire des téléchargementsbrowser.helperApps.neverAsk.saveToDisk
Demande à Firefox de télécharger automatiquement les fichiers du mime-types
SélectionnéVous pouvez afficher toutes ces préférences dans about:config
Dans le navigateur. Il y a aussi une page de documentation très détaillée disponible ici: À propos: entrées de configuration .
De plus, au lieu d'utiliser l'approche xpath
, j'utiliserais find_element_by_partial_link_text()
:
driver.find_element_by_partial_link_text("DEV.tgz").click()
Regarde aussi:
Si l'application est générée dynamiquement (types mime) en utilisant Chrome sera une meilleure approche car le Chrome n'ouvrira pas la fenêtre contextuelle de téléchargement de fichier). Mais l'option de téléchargement multiple doit être activée si vous avez besoin de plusieurs téléchargements.