IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Réseau/Web Python Discussion :

Selenium changer le répertoire de téléchargement chromedriver [Python 3.X]


Sujet :

Réseau/Web Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 582
    Par défaut Selenium changer le répertoire de téléchargement chromedriver
    Bonjour,
    j'ai automatisé la publication de tweets et, quand je clique sur le bouton Ajouter photo de Tweeter, j'ai besoin de changer le répertoire de téléchargements (j'utilise chromedriver.exe). J'ai trouvé divers morceaux de codes ici et là mais aucun ne fonctionne. Voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    options = webdriver.ChromeOptions() 
    options.add_argument("user-data-dir=C:\\Users\\Jake\\AppData\\Local\\Google\\Chrome\\User Data\\Default") 
    prefs = {"download.default_directory" : "E:\\Images\\tweeter\\","directory_upgrade": True,"extensions_to_open": ""}
    options.add_experimental_option("prefs",prefs)
    driver = webdriver.Chrome(executable_path='C:\\Program Files (x86)\\chromedriver.exe', chrome_options=options)
    Cela ne fonctionne pas. Le dossier qui s'ouvre est le dernier que j'ai utilisé.

    J'ai essayé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    options.add_argument("download.default_directory=E:\\Images\\tweeter\\")
    Cela ne fonctionne pas non plus.

    Autre essai:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    prefs = {"profile.default_content_settings.popups": 0,
                 "download.default_directory": 
                            r"E:\Images\tweeter\\",#IMPORTANT - ENDING SLASH V IMPORTANT
                 "directory_upgrade": True}
    options.add_experimental_option("prefs", prefs)
    Ne fonctionne pas.

    Quelqu'un aurait-il une solution?

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 582
    Par défaut
    Je viens de me rendre compte d'une chose: je pensais que le dossier de téléchargements et le dossier qui s'ouvre lors d'un upload d'un fichier (comme ici pour insérer une image dans un tweet) étaient les mêmes et étaient définis par l'option download.default_directory de chrome. Mais il n'en est rien!
    J'ai lancé mon code puis, en laissant chromedriver ouvert, j'ai ouvert le menu puis été dans Paramètres et là, dans l'emplacement des Téléchargements, il est bien indiqué le dossier E:\Images\tweeter comme je l'ai indiqué dans les options de chromedriver. J'ai changé plusieurs fois cet emplacement et chaque fois, cela est bien répercuté dans les paramètres de chromedriver.
    Je modifie donc ma question: comment changer le dossier de la boite de dialogue Sélection de fichier qui s'ouvre lorsqu'on veut, par exemple, insérer une image dans un tweet? Où est stocké ce paramètre dans chrome?

  3. #3
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 255
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 255
    Par défaut
    hello,
    pourquoi te compliquer la vie en passant par la boîte de dialogue de sélection de fichiers alors que tu peux directement choisir et envoyer ton fichier.
    Voici un exemple qui :
    1 - Se connecte à un compte twitter
    2 - Rédige un tweet avec une insertion de photo.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    from selenium import webdriver
    driver = webdriver.Chrome(service_args=["--verbose", "--log-path=M:\\test\chrome.log"])
    driver.set_window_size(900, 720)
    driver.implicitly_wait(10) # seconds
    # Open Chrome
    driver.get("https://twitter.com/login")
    login_field = driver.find_element_by_name("session[username_or_email]")
    login_field.clear()
    # entrer compte
    login_field.send_keys("MonCompteTwitter")
    password_field = driver.find_element_by_name("session[password]")
    password_field.clear()
    # entrer mot de passe
    password_field.send_keys("MonMotdePasse")
    driver.find_element_by_xpath("//div[@data-testid='LoginForm_Login_Button']").click()
    driver.get("https://twitter.com/compose/tweet")
    texte = driver.find_element_by_xpath("//div[@data-testid='tweetTextarea_0']")
    texte.send_keys("coucou !  ")
    addfile = driver.find_element_by_xpath("//input[@data-testid='fileInput']")
    addfile.send_keys("M:\\test\python.jpg")


    Les comptes, mots de passe, fichiers, chemins sont à adapter.


    et voici le résultat :

    Nom : Capture_SeleniumTwitter.JPG
Affichages : 1049
Taille : 100,3 Ko

    Ami calmant, J.P

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 582
    Par défaut
    J'ignorais totalement que l'on pouvait procéder ainsi. Tellement plus simple évidemment!
    Merci bien!

    P.S : peut-on faire la même chose sur Facebook? Je ne trouve pas de champ input dans la fenêtre de rédaction de publication...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VB6]changer de répertoire de travail
    Par kboo dans le forum VB 6 et antérieur
    Réponses: 16
    Dernier message: 18/05/2006, 21h36
  2. Empecher un OpenDialog de changer de répertoire ?
    Par Bleuarff dans le forum Composants VCL
    Réponses: 7
    Dernier message: 07/11/2005, 14h48
  3. [Tomcat] Changer le répertoire par défaut
    Par leminipouce dans le forum Tomcat et TomEE
    Réponses: 3
    Dernier message: 23/05/2005, 17h06
  4. Comment changer le répertoire des fichiers temporaires ?
    Par devdev dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 01/09/2004, 15h18
  5. [2.1][Workspace]Changer le répertoire par défaut
    Par Pill_S dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 29/06/2004, 14h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo