Comment contrôler le téléchargement de fichiers avec le Sélénium + bindings Python dans Chrome
Où puis-je trouver de la documentation qui décrit les options que je peux utiliser avec le Sélénium et le Chrome navigateur web? Je veux ouvrir un lien dans un navigateur web (pour obtenir des informations d'identification), mais pas à télécharger le fichier correspondant (.pdf ou .tiff ou .jpeg). J'utilise Python 2.7, le sélénium 3.0.1 et Chrome version 54.0.2840.99 (et chromedriver.exe) sur Windows 7 ordinateur Portable.
# Chrome web browser.
options = webdriver.ChromeOptions()
options.add_argument('--ignore-certificate-errors')
#options.add_argument('--disable-download-notification') #doesn't seems to work
#options.add_experimental_option("prefs", {"download.default_directory","C:\Users\xxx\downloads\Test"}) # doesn't work
#options.add_experimental_option("prefs", {"download.prompt_for_download": False}) # doesn't seems to work
#options.add_experimental_option("prefs", {'profile.default_content_settings': {'images': 2}})# this will disable image loading in the browser
options.add_argument("user-agent="+user_agent_profile)
driver_main = webdriver.Chrome(chrome_options=options)
# Opening the web application portail.
driver_main.get("https://my_link")
J'ai trouvé beaucoup de discussions sur ce sujet, mais aucun de la solution fonctionne. Par exemple:
add_experimental_option("prefs", {"download.default_directory","C:\Users\xxx\downloads\Test"})
ne fonctionne pas pour moi.
Même pour:
add_experimental_option("prefs", {"download.prompt_for_download": False})
(J'ai aussi essayer avec "false").
Tout:
add_argument("user-agent="+user_agent_profile)
Semble fonctionner!
Je ne suis pas sûr de comprendre ce qui est mauvais
Le problème que j'ai est qu', il commence à télécharger le fichier à chaque fois que j'ouvre un lien avec le nom de fichier(1) fichier(2) .... fichier(99) puis à partir de 100, il ouvre la fenêtre "Enregistrer sous". Donc j'aimerais ne pas télécharger tout le fichier ou être en mesure de le déplacer dans un dossier spécifique dans la "Corbeille".
Comment puis-je trouver les options qui pourraient être j'ai utilisé avec add_argument et add_argument? J'ai essayé de regarder à l'adresse Chrome://about/mais je ne pouvais pas voir une correspondance directe.
Merci beaucoup.
Acclamations.
Fabien.
"download.default_directory","C:\\Users\\xxx\\downloads\\Test"
. Il fonctionne comme un charme pour moi.OriginalL'auteur Dr. Fabien Tarrade | 2016-11-17
Vous devez vous connecter pour publier un commentaire.
Le chemin que vous avez déclarée pour le répertoire par défaut est non valide. Soit échapper à l'arrière des barres obliques ou de fournir une chaîne littérale.
Voici les préférences:
https://cs.chromium.org/chromium/src/chrome/common/pref_names.cc
Vous pouvez essayer de
options.add_argument('disable-component-cloud-policy')
pour voir si il désactive la politique.Salut Florent, je lui ai donné un essai et il n'a eu aucun impact. Je vais essayer sur un autre ordinateur Portable avec ces restriction pour voir si cela fonctionne. J'ai réussi à résoudre la plupart de la question .pdf en supprimant les fichiers temporaires dans le dossier de téléchargement, une fois la copie mais le .jpg sont affichés dans le navigateur et un peu de temps de planter le système. J'ai essayer de jouer avec .set_page_load_timeout(10) pour éviter ce problème. Merci
Si un fichier PDF doit être téléchargé que cette ligne est importante dans les options:
"plugins.always_open_pdf_externally": True,
Il est similaire à la vérification menu Paramètres / Confidentialité Paramètres de Contenu / Documents PDF - Ouvrir des fichiers PDF dans le visualiseur de PDF par défaut de l'application (case à cocher)Si un fichier PDF doit être téléchargé que cette ligne est importante dans les options:
"plugins.always_open_pdf_externally": True,
Il est similaire à la vérification menu Paramètres / Confidentialité Paramètres de Contenu / Documents PDF - Ouvrir des fichiers PDF dans le visualiseur de PDF par défaut de l'application (case à cocher)OriginalL'auteur Florent B.