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 : 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="&#x2713;" /><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 : 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")
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
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.