2016-09-15 4 views
2

Ich verwende diese Firefox Vorliebe für selenium in Python Einstellung 2.7:Python Selenium: Firefox set_preference Dateien beim Herunterladen überschreiben?

ff_profile = webdriver.FirefoxProfile(profile_dir) 

ff_profile.set_preference("browser.download.folderList", 2) 
ff_profile.set_preference("browser.download.manager.showWhenStarting", False) 
ff_profile.set_preference("browser.download.dir", dl_dir) 
ff_profile.set_preference('browser.helperApps.neverAsk.saveToDisk', "text/plain, application/vnd.ms-excel, text/csv, text/comma-separated-values, application/octet-stream") 

mit Selen, ich will es wiederkehrend auf die gleiche Datei heruntergeladen haben, und überschreiben, so dass die gleichen Dateinamen zu halten - ohne mich das bestätigen, die herunterladen.

Mit den obigen Einstellungen wird heruntergeladen, ohne nach dem Ort zu fragen, aber alle Downloads werden Duplikate mit dem Dateinamen filename (1).ext, filename (2).ext usw. in MacOS erstellen.

Ich vermute, es gibt möglicherweise keine Einstellung zum Überschreiben von Firefox, um Unfälle (?) Zu verhindern.

(In diesem Fall würde ich die Lösung sein, das Überschreiben auf der Festplatte mit anderen Python-Modulen zu behandeln; ein anderes Thema).

Antwort

2

Dies ist etwas, das aus dem Selenium Anwendungsbereich ist und vom Betriebssystem behandelt wird.

Gemessen am Kontext dieser und Ihrer previous question, Sie wissen (oder können aus dem Linktext bestimmen) den Dateinamen im Voraus. Wenn dies wirklich der Fall ist, vergewissern Sie sich vor dem Klicken auf den Link "Download", dass Sie die vorhandene Datei entfernen:

import os 

filename = "All-tradable-ETFs-ETCs-and-ETNs.xlsx" # or extract it dynamically from the link 
filepath = os.path.join(dl_dir, filename) 
if os.path.exists(filepath): 
    os.remove(filepath) 
Verwandte Themen