Bonjour,
Un simple article pour partager un bout de code que j’utilise dans un programme. Ce code permet d’ouvrir une page web via Internet Explorer, de remplir automatiquement les champs ‘Nom d’utilisateur’ et ‘Mot de passe’ et de valider le login. L’exemple qui suit montre l’utilisation de ce script pour Outlook.com :
# Remplacer les valeurs suivantes par vos informations $loginpage = "https://login.live.com" $username= "my.account@outlook.com" $password= "[email protected]" # On crée l'objet qui va permetre l'ouverture de la page $ie = New-Object -com internetexplorer.application; # Tant que les champs 'User' et 'Password' n'ont pas été remplis, on cache la page $ie.visible = $false # Le browser navige jusqu'à la page de login définie plus haut $ie.navigate($loginpage) # Le script attend que la page charge while($ie.ReadyState -ne 4) {start-sleep -m 100} # On popule les champs requis par nos informations de login # Les ID sont ceux présents dans le code HTML de la page $ie.Document.getElementById("i0116").value = $username $ie.Document.getElementById("i0118").value = $password sleep -Seconds 2 # On clique sur le boutton, l'id est celui trouvé dans le code HTML $ie.Document.getElementById("idSIButton9").click() # A ce moment on affiche la page web $ie.visible=$true
Bien entendu, le mot de passe est renseigné en clair dans ce script de test, mais il est évident que nous utiliserons une méthode d’encryption en cas d’utilisation en ‘production’. A noter qu’il est aussi possible de transformer ce script en exécutable (et donc de stocker de le mot de passe de manière plus sécurisée), grâce à PowerShell Studio.
HTH !
Bonjour, je recherche activement depuis longtemps a essayer de faire un script qui me permettrai de me loger sur une page web seulement le champs username et password ne possédè pas d’ID, auriez–vous une idée de script possible pour pouvoir remplir les deux champs sans avoir l’ID du champ ?
Si possible en Powershell
Bien Cordialement,
JC
Bonjour JC,
Désolé pour la réponse tardive. Si la balise ‘input’ ne possède pas d’attribut ‘id’, il faut filtrer autrement, par exemple sur le nom, ce qui donnerait :
$ie.Document.getElementsByName(‘Login_Field’)
Ou alors, il est également possible de filtrer sur le nom de la balise, et peaufiner avec le contenu texte :
$ie.Document.getElementsByTagName(‘input’) | ? {$PSItem.outerHTML -ilike ‘*password*’}
Pour avoir une vue aisée des balises ‘input’ et du contenu, utiliser :
$ie.Document.getElementsByTagName(‘input’) | select OuterHTML
Si vous avez besoin d’aide, n’hésitez pas à me donner un exemple, j’essaierai de trouver le temps de faire le script.
Bonnes recherches.
Bien à vous,
Antoine