Partage
  • Partager sur Facebook
  • Partager sur Twitter

Powershell IE

Automatisation de téléchargement de document sur le web avec Powershel

    9 janvier 2020 à 11:02:25

    Bonjour,

    Je travaille actuellement sur un script qui me connecte à un site internet et qui récupère un fichier. J'ai codé tout la partie identification et navigation sur le site mais je n'arrive pas à télécharger le fichier. 

    J'ai tentée de mettre en place plusieurs méthodes dont:  Start-BitsTransfer -Source $urlSource -Destination '$urlDestination celle-ci me renvoit "Le serveur n’a pas renvoyé la taille du fichier. L'URL pointe peut-être vers un contenu dynamique. L'en-tête Content-Length n’est pas disponible dans la réponse HTTP du serveur" comme erreur.

    La méthode qui semble possédé du potentiel, c'est d'ouvrir le lien du document, une boite de dialogue de téléchargement apparaît alors mais je n'ai pas trouvé la méthode pour interagir avec. Comment puis-je procéder.


    Je suis attentif à toute information qui pourrait m'aider. Comment procéder pour interagir avec la boite de dialogue de téléchargement? Existent-ils d'autre méthode pour télécharger un document? Existe-il une méthode pour désactiver la boite de dialogue de téléchargement d'internet explorer, pour ainsi télécharger directement le fichier dans le répertoire de téléchargement comme chrome?

    Voici mon script:

    $page1 = "https://site.fr/connexion"
    $page2 = "https://site.fr/facture"
    $lienDLL = “https://site.fr/facture/telechargement.do?method=telechargerFichier&csrfToken=7340cfe884f187de86967c67920b0b6e"
    
    <# Ouverture du navigateur #>
    $IE= new-object -ComObject "InternetExplorer.Application" 
    
    <# Connexion à la page web #>
    $IE.navigate($Page1)
    
    <# Attend la fin du chargement de la page #>
    while($IE.ReadyState -ne 4) {start-sleep -m 100}
    
    <# Insertion du login dans le formulaire de la page #>
    $IE.Document.IHTMLDocument3_getElementById("j_username").value="user" 
    $IE.Document.IHTMLDocument3_getElementById("j_password").value="mdp"
    
    <# Click sur le bouton de connexion #>
    $IE.Document.IHTMLDocument3_getElementById("okbtn").Click();
    
    <# Connexion avec une autre page #>
    $IE.navigate2($Page2)
    
    <# Attend la fin du chargement de la page #>
    while($IE.ReadyState -ne 4) {start-sleep -m 100}
    
    <# Sélectionne la date du fichier à télécharger #>
    $IE.Document.getElementById("criteresTID.dateFacturation").value="15/02/2019" 
    
    <# Exécute le code JavaScript qui permet d'accéder à la page suivante #>
    $IE.Document.parentWindow.execScript("avascript:nav_setMethodAndSubmit('executer')", 'javascript')
    
    <# Attend la fin du chargement de la page #>
    while($IE.ReadyState -ne 4) {start-sleep -m 100}
    
    <# Ouvre la boite de dialogue du fichier à télécharger #>
    $IE.navigate($lienDll)

    Merci d'avance pour votre aide!!

    • Partager sur Facebook
    • Partager sur Twitter
      9 janvier 2020 à 14:52:28

      Bonjour,

      peut-être que cet article te sera utile.

      • Partager sur Facebook
      • Partager sur Twitter

      Powershell IE

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown