paramétrage des préférences Chrome w / Selenium Webdriver en Python
J'utilise Selenium Webdriver (en Python) pour automatiser le téléchargement de milliers de fichiers. Je veux configurer le dossier de téléchargement de Chrome par programmation. Après la lecture de , j'ai essayé ceci:
chromepath = '/Users/thiagomarzagao/Desktop/searchcode/chromedriver'
desired_caps = {'prefs': {'download': {'default_directory': '/Users/thiagomarzagao/Desktop/downloaded_files/'}}}
driver = webdriver.Chrome(executable_path = chromepath, desired_capabilities = desired_caps)
Pas bon. Les téléchargements vont toujours dans le dossier de téléchargement par défaut ("/Users/thiagomarzagao/Downloads").
des idées?
(Python 2.7.5, sélénium 2.2.0, Chromedriver 2.1.210398, Mac OS X 10.6.8)
5 réponses
La suite fonctionné pour moi:
chromeOptions = webdriver.ChromeOptions()
prefs = {"download.default_directory" : "/some/path"}
chromeOptions.add_experimental_option("prefs",prefs)
chromedriver = "path/to/chromedriver.exe"
driver = webdriver.Chrome(executable_path=chromedriver, chrome_options=chromeOptions)
Source:https://sites.google.com/a/chromium.org/chromedriver/capabilities
si quelqu'un a encore des problèmes et que les solutions ci-dessus n'ont pas fonctionné, j'ai trouvé en ajoutant une barre oblique ('\') à mon chemin de téléchargement.
la Mienne ressemblait à ceci:
if browser == 'chrome':
options = webdriver.ChromeOptions()
options.add_argument("--start-maximized")
prefs = {"profile.default_content_settings.popups": 0,
"download.default_directory": r"C:\Users\user_dir\Desktop\", # IMPORTANT - ENDING SLASH V IMPORTANT
"directory_upgrade": True}
options.add_experimental_option("prefs", prefs)
return webdriver.Chrome(executable_path=Base.chromedriver_dir, chrome_options=options)
je pense que vous avez aussi besoin d'
"directory_upgrade": true
en utilisant le dictionnaire directement dans un fichier Chrome 'Prefrences', sur une installation Windows locale de la version 28.0.1500.95 m de chrome, avec les options de téléchargement suivantes:
"download": {
"default_directory": "C:\Users\rdub\Desktop",
"extensions_to_open": ""
},
je l'emplacement par défaut, contre le bureau. Quand je l'ai changer pour ceci:
"download": {
"default_directory": "C:\Users\rdub\Desktop",
"directory_upgrade": true,
"extensions_to_open": ""
},
je l'emplacement du bureau de.
Essayez la procédure suivante:
desired_caps = {'prefs': {'download': {'default_directory': '/Users/thiagomarzagao/Desktop/downloaded_files/', "directory_upgrade": true, "extensions_to_open": ""}}}
j'ai essayer toutes les anwsers dans cette question, mais il ne fonctionne pas pour mon Ubuntu 16.10. Donc j'ajoute le changement avec os.environ pour la variable XDG_DOWNLOAD_DIR. Ce qui ne marche pas, mais je pense que ça aide.
C'est:
os.environ['XDG_DOWNLOAD_DIR'] = default_download_directory
La vraiment changer que fonctionne parfaitement pour moi de la configuration, le dossier de téléchargement via la commande xdg-user-dirs-mise à jour via un appel système en exécution heure:
os.system("xdg-user-dirs-update --set DOWNLOAD " + default_download_directory)
donc, tout mon code relié à la configuration du répertoire de téléchargement est le suivant:
import os
from selenium import webdriver
default_download_directory = str(os.path.dirname(os.path.abspath(__file__))) + "/download"
os.environ['XDG_DOWNLOAD_DIR'] = default_download_directory
os.system("xdg-user-dirs-update --set DOWNLOAD " + default_download_directory)
desired_caps = {
'prefs': {
'download': {
'default_directory': str(os.path.dirname(os.path.abspath(__file__))) + "/download",
"directory_upgrade": "true",
"extensions_to_open": ""
}
}
}
options = webdriver.ChromeOptions()
options.add_argument("download.default_directory=" + str(os.path.dirname(os.path.abspath(__file__))) + "/download")
browser = webdriver.Chrome(chrome_options=options, desired_capabilities=desired_caps)
pour ceux qui se demandent encore pourquoi leur mise en œuvre ne fonctionne pas: vous devez mettre le chemin complet pour qu'il fonctionne. par exemple '/ Users / you / dlfolder ' ne fonctionnera pas, tandis que 'C:/Users/you/dlfolder' will.