Bonsoir à tous,
j'ai suivi l'article https://qwazerty.developpez.com/tuto...-et-vba-excel/ pour le VBA et Internet explorer.
j'ai pu avancer sur mon code par contre je bloque sur un élement:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
|
Sub WaitIE(IE As Object)
Const READYSTATE_COMPLETE = 4
'On boucle tant que la page n'est pas totalement chargée
Do Until Not IE.Busy And IE.readyState = READYSTATE_COMPLETE
'Sleep (300) 'wait 0.5 second
DoEvents
Loop
End Sub
Sub PremierIE()
'Déclaration des variables
Dim IE As New InternetExplorerMedium
Dim FordLogin As HTMLFormElement
'Chargement d'une page web Google
IE.navigate "www.site.com/login.cgi"
'Affichage de la fenêtre IE
IE.Visible = True
'On attend le chargement complet de la page
WaitIE IE
Set IEDoc = IE.document
'On pointe notre Zone de texte
Set login = IEDoc.all("userid")
'On définit le texte que l'on souhaite placer à l'intérieur
login.Value = "logiiiiii"
Set pwd = IEDoc.all("b64Pwd")
'On définit le texte que l'on souhaite placer à l'intérieur
pwd.Value = "xxxx"
' WaitIE IE
Application.Wait Time + TimeSerial(0, 0, 6)
Set form = IEDoc.forms("logonForm")
'On exécute l'action Submit de la Form
'form.submit
'IEDoc.forms(0).submit
IEDoc.parentWindow.execScript "validateForm('logonForm')", "JavaScript"
'On laisse 2 secondes au lecteur
'Application.Wait Time + TimeSerial(0, 0, 6)
'Sleep 2000
'IEDoc.parentWindow.execScript "return validateForm(logonForm)"
'On libère la variable IE
Set IE = Nothing
End Sub |
J'ai un problème avec le bouton submit ou plutôt sur la partie Form:
<FORM onsubmit="return validateForm(this.form);" method=post name=logonForm action=auth.cgi>
Avant de passer à la page auth.cgi il exécute une fonction javascript ( qui transforme le pwd en mot depasse)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
function validateForm(form)
{
if (document.forms[0].userid.value.length == 0 || document.forms[0].userid.value.length < 3) {
alert( "\ Idenue");
return false;
}
if (document.forms[0].b64Pwd.value.length == 0) {
alert("Vous devez sse");
return false;
}
else
{
var formPassword = document.forms[0].b64Pwd.value;
var base64Password = base64Encode(formPassword);
if(base64Password.length > 0)
{
document.forms[0].b64Pwd.value = base64Password;
}
}
return true;
} |
Dans mon code je n'arrive pas a faire passer à la page suivante. j'ai pas erreur.
si je indique IEDoc.forms(0).submit cela passe (à la page suivante, mais mauvais mdp)mais il exécute pas la partie javascript.
Quelle code je doit mettre en place plus faire le submit et le javascript en meme temps?
merci d'avance pour vos conseils
guigui69
Partager