2017-10-18 2 views
0

J'utilise selenium et python v3.6 pour automatiser firefox pour télécharger le fichier dans un dossier personnalisé. L'emplacement du dossier est C:/Users/username/Dropbox/Inv/.Quel est le problème avec ce profil selenium firefox pour télécharger le fichier dans un dossier personnalisé?

Voici mon profil firefox.

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', 'C:/Users/username/Dropbox/Inv/') 
profile.set_preference('browser.helperApps.neverAsk.saveToDisk', 'text/plain') 
profile.set_preference('browser.helperApps.neverAsk.openFile', 'text/plain') 

Actuellement, le fichier est toujours téléchargé dans le dossier par défaut C:\Users\username\Downloads. Comment puis-je obtenir l'emplacement de dossier téléchargé à C:/Users/username/Dropbox/Inv/?

+0

Copie possible de [télécharger et enregistrer plusieurs fichiers CSV en utilisant sélenium et python de popup] (https://stackoverflow.com/questions/45097302/download-and-save-multiple-csv-files-using-selenium-and -python-from-popup) – DebanjanB

Répondre

1

je répondre à ma propre question. Le problème réside dans la chaîne spécifiant le répertoire de téléchargement. Je devrais utiliser \\ et non /.

profile.set_preference('browser.download.dir', 'C:\\Users\\username\\Dropbox\\Inv') 

Le code a été vérifié pour fonctionner maintenant.

1

Vous devez utiliser profile lors du lancement de Firefox:

driver = webdriver.Firefox(firefox_profile = profile) 

Vérifiez 8.4. How to auto save files using custom Firefox profile ? dans Sélénium Docs FAQ.

C'est l'exemple le lien:

import os 

from selenium import webdriver 

fp = webdriver.FirefoxProfile() 

fp.set_preference("browser.download.folderList",2) 
fp.set_preference("browser.download.manager.showWhenStarting",False) 
fp.set_preference("browser.download.dir", os.getcwd()) 
fp.set_preference("browser.helperApps.neverAsk.saveToDisk", "application/octet-stream") 

browser = webdriver.Firefox(firefox_profile=fp) 
browser.get("http://pypi.python.org/pypi/selenium") 
browser.find_element_by_partial_link_text("selenium-2").click() 
+0

Merci pour votre aide mais je n'ai pas assez de points pour upvote. – user1315789