[R] Problème avec un formulaire sur IE

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
MaxNii
Niveau 1
Niveau 1
Messages : 2
Enregistré le : mar. 06 juil. 2010 17:18
Status : Hors ligne

[R] Problème avec un formulaire sur IE

#1

Message par MaxNii »

Bonjour à tous, et merci de prendre le temps de me lire.
J'ai vraiment cherché sur le forum et ai mis du temps pour tenter de résoudre ce problème mais rien à faire...
Rapidement, je dois remplir grâce à AutoIT un champs d'un formulaire d'une page Internet puis lancer la recherche.
Voila mon code pour le moment:

Code : Tout sélectionner

#include <IE.au3>

$oIE=_IECreate("MonSite")
sleep(10000)
;Je me laisse du temps pour rentrer les logins permettant l'affichage complet de la page.

_IENavigate($oIE,"MonSite/principalAdministrator.jsp")
_IELoadWait($oIE)
sleep(10000)
; Tout est chargé à ce point et fonctione, après rien ne va plus.

$oForm = _IEFormGetObjByName($oIE,"post")
$oQuery = _IEFormElementGetObjByName ($oForm, "criteria")
_IEFormElementSetValue ($oQuery, "m143873")
; Je "scan" ma page à la recherche du formulaire "post" duquel j'isole l'élément "criteria" que je rempli ensuite.

_IEFormSubmit ($oForm)
_IELoadWait ($oIE)
; Je lance la recherche et attend le load complet.
Donc voila je comprend pas, rien ne se passe, j'arrive bien sur la page du formulaire mais il ne se remplit pas, des erreurs s'affichent au bout d'une quinzaine de seconde:
--> IE.au3 V2.4-0 Warning from function _IEFormGetObjByName, $_IEStatus_NoMatch
--> IE.au3 V2.4-0 Error from function _IEFormElementGetObjByName, $_IEStatus_InvalidDataType
--> IE.au3 V2.4-0 Error from function _IEFormElementSetValue, $_IEStatus_InvalidDataType
--> IE.au3 V2.4-0 Error from function _IEFormSubmit, $_IEStatus_InvalidDataType

Ensuite, pour que vous ayez toutes les billes:

Code : Tout sélectionner

<FORM method=post><!-- start title block -->
<TABLE height=30 width="100%">
<TBODY>
<TR class=bg-pagetitle>
<TD class=f-pagetitle>Afficher les utilisateurs et groupes</TD></TR>
<TR>
<TD>Pour le système Windchill: <!-- This component must be enclosed in <form></form> tags --><INPUT type=hidden value=serveur.Windchill name=selectedWcAdapter> serveur.Windchill </TD></TR></TBODY></TABLE><!-- end TitleBlock --><!-- display the search component at the top of the page --><!-- begin logic for processing the user's actions ... --><!-- This jsp must be enclosed in <form></form> tags -->
<TABLE>
<TBODY>
<TR>
<TD align=right>Trouver</TD>
<TD align=left><INPUT type=radio CHECKED value=Users name=searchMode>Utilisateurs <INPUT type=radio value=Groups name=searchMode>Groupes </TD></TR>
<TR>
<TD align=right>dans</TD>
<TD align=left><!-- This component must be enclosed in <form></form> tags --><INPUT type=hidden value=ou=people,dc=appli,dc=france,dc=société,dc=fr name=base>serveur.Ldap </TD></TR>
<TR>
<TD align=right>dont le nom contient</TD>
<TD align=left><INPUT name=criteria></TD></TR>
<TR>
<TD align=left colSpan=2><INPUT type=submit value=Recherche name=search> </TD></TR></TBODY></TABLE><!-- end of search component display --><INPUT type=hidden value=ou=people,dc=appli,dc=france,dc=société,dc=fr name=base> </FORM>
Voila l'HTML de la partie de la page contenant le formulaire.

En espèrant que ce soit pas une erreur débile parce que j'en ai passé du tps la dessus.

Merci d'avance.
Modifié en dernier par timmalos le mer. 07 juil. 2010 12:50, modifié 1 fois.
Raison : titre
Avatar du membre
timmalos
Niveau 11
Niveau 11
Messages : 1970
Enregistré le : dim. 18 mai 2008 15:16
Status : Hors ligne

Re: [Problème avec un formulaire sur IE]

#2

Message par timmalos »

Bon alors premièrement je tiens a vous feliciter, vous nous avez donné tous les elements necessaires à notre bonne comprehension, ceci afin qu'on puisse vous aider. Sachez que c'est rare ces temps ci :twisted: donc je vais faire de mon mieux pour vous répondre .

EDIT : Erf, vous n'avez pas respecter les règles du forum, veuillez svp les lire, et vous conformer, notamment ce qui concerne votre titre. Merci


Deuxiemement, vous avez pas bien regardé la premiere ligne d'erreur:

Code : Tout sélectionner

$oForm = _IEFormGetObjByName($oIE,"post")
--> IE.au3 V2.4-0 Warning from function _IEFormGetObjByName, $_IEStatus_NoMatch

C'est donc qu'il y a deja un probleme à cette ligne, (yen a peut etre egalement après hein, ca je n'ai pas regardé encore)
Et en effet quand on regarde votre page on voit

Code : Tout sélectionner

<FORM method=post><!-- start title block -->
Et cette form, (GRAND merci au createur du site) ne réponds pas aux règles définies par le W3C, elle n'a pas de nom, et c'est bien essayé mais method s'est la méthode , ca peut etre GET ou POST, mais Post n'est pas le nom de la form, il aurait fallu un

Code : Tout sélectionner

<FORM method=post name='FORMULAIRE'>
pour pouvoir l'obtenir grâce à

Code : Tout sélectionner

_IEFormGetObjByName
Donc la il n'y a qu'une solution, et je ne peux pas etre certain parce que vous n'avez pas donné l'integralité du code html de la page, mais il va falloir passer par _IEFormGetCollection($oIE,0) Cette fonction selectionnera la première form de la page, ca marche dans les 3/4 des cas, sinon si y'a une autre formulaire dans la page, il faut que vous regardiez l'ordre et changiez le 0 en 1 ou après 2 etc... En gros le numéro c'est "Position du formulaire dans la page -1", donc si y'en a qu'un on met 0


Maintenant que votre $oForm est bien choisi, on peut continuer ;) Et apres un rapide coup d'oeil, ca devrait etre bon
MaxNii
Niveau 1
Niveau 1
Messages : 2
Enregistré le : mar. 06 juil. 2010 17:18
Status : Hors ligne

Re: [Problème avec un formulaire sur IE]

#3

Message par MaxNii »

Ah désolé pour le titre je croyais qu'il fallait mettre le titre dans le [..] (le noob :) ). Merci de cette prompte réponse, je vais essayer ca, mon formulaire étant le seul de la page, ca devrait fonctionner.

Edit: ca a parfaitement fonctionné!
Répondre