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 :
Je précise qu'il s'agit du seul formulaire de la page de login.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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>
J'ai essayé ce genre de chose sans résultat :
Le code que j'ai actuellement :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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")
Aparrement dans IE 9, on ne peut plus écrire via NomElement.Value = "".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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}"
Des pistes ?
Merci.
Partager