Question AutoCompletion champs web avec type name

Plus d'informations
il y a 7 ans 2 mois #27998 par freeman62
Bonjour,

En PowerShell, je souhaite remplir des champs html automatiquement.
Le site html semble simple :

[code:1]<input type=\"text\" name=\"monlogin\" size=\"15\" maxlength=\"15\"/>
<input type=\"password\" name=\"elcode\" size=\"15\" maxlength=\"15\"/>
<input type=\"submit\" name=\"go\" value=\"log on\" class=\"x1\">
<input type=\"reset\" value=\" refaire \" class=\"x2\">[/code:1]


Je me suis inspiré de ce code qui fonctionne avec mail 365 en remplaçant \"getElementById\" par \"getElementsByName\" car dans le html ci-dessus il y a un nom pas \"d'ID\" de champs, seulement un \"name\".



[code:1]# Remplacer les valeurs suivantes par vos informations
$loginpage = \"https://monnouveausite.com\"
$username= \"moncompte\"
$password= \"monmotdepasse\"

# 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
write-host T1
$ie.navigate($loginpage)

write-host T2
# Le script attend que la page charge
while($ie.ReadyState -ne 4) {start-sleep -m 100}

write-host T3
# 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.getElementsByName(\"monlogin\"«»).value = $username
$ie.Document.getElementsByName(\"elcode\"«»).value = $password
sleep -Seconds 2

# On clique sur le boutton, l'id est celui trouvé dans le code HTML
$ie.Document.getElementsByName(\"go\"«»).click()

# A ce mo:«»pinch: ment on affiche la page web
$ie.visible=$true
[/code:1]
(le code est bien plus lisible sur le lien mais sans mes petites modif' évoquées :) )



Le résultat est que la page s'ouvre bien... Mais il ne se passe rien !
Les champs ne se remplissent pas et le formulaire n'est pas soumis.

Je n'ai pas d'erreur.

Toutefois, en ayant mis des write-host partout, je vois que le T3 n'apparait pas (donc ça semble bloquer sur \"while($ie.ReadyState -ne 4) {start-sleep -m 100}\")

D'avance, merci à vous ! :)

Freeman.

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.075 secondes
Propulsé par Kunena