Automatisation Web Page IE 9
Bonjour,
J'essaye d'automatiser une tache redondante à partir d'un site Intranet.
La première étape consiste à se logguer.
Je réussis à le faire via sendkeys mais je ne pense pas que cela soit la meilleure solution.
Voici la page :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| <div id="login-form">
<form accept-charset="UTF-8" action="/login" method="post"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓" /><input name="authenticity_token" type="hidden" value="bp41iANHy85F6fks6T4QOcF1bhGmFZAGfENZorp8J1w=" /></div>
<input name="back_url" type="hidden" value="http://something" />
<table>
<tr>
<td style="text-align:right;"><label for="username">Identifiant :</label></td>
<td style="text-align:left;"><input id="username" name="username" tabindex="1" type="text" /></td>
</tr>
<tr>
<td style="text-align:right;"><label for="password">Mot de passe:</label></td>
<td style="text-align:left;"><input id="password" name="password" tabindex="2" type="password" /></td>
</tr> |
Je précise qu'il s'agit du seul formulaire de la page de login.
J'ai essayé ce genre de chose sans résultat :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| Set IE = CreateObject("InternetExplorer.Application")
IE.Visible = True
IE.Navigate "http://something/login"
For Each objElement In IE.Document.Forms(0).Elements
If (LCase(objElement.Type) = "username" ) Then
objElement.Value="xxx"
Exit For
End If
Next
Wscript.Sleep 300
'Set Helem = IE.document.getElementById("username")
'Helem.Text="asd"
IE.Quit
'Set Helem = IE.document.getElementById("password") |
Le code que j'ai actuellement :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| Set IE = CreateObject("InternetExplorer.Application")
Set WshShell = WScript.CreateObject("WScript.Shell")
IE.Visible = True
IE.Navigate "http://something/login"
Wscript.Sleep 1000
WshShell.SendKeys "username"
WshShell.SendKeys "{TAB}"
Wscript.Sleep 1000
WshShell.SendKeys "password"
WshShell.SendKeys "{TAB}"
WshShell.SendKeys "{TAB}"
WshShell.SendKeys "{ENTER}" |
Aparrement dans IE 9, on ne peut plus écrire via NomElement.Value = "".
Des pistes ?
Merci.