Bonjour,
je cherche a remplir des formulaires dans un Twebbrowser.
Mon problème c'est que je souhaite remplir le formulaire d'un clic de souris ou par glisser déposer et donc la solution au dessus ne me convient pas même si on est en plein dans le sujet (d'où le déterrage).
après 1 semaine de recherche sur le net j'ai trouvé pas mal de choses pour accéder aux formulaires mais rien qui m'aide a résoudre mon problème.
J'arrive a remplir les formulaires sur des sites sans frames comme cela:
le problème c'est que ça ne fonctionne pas avec les sites qui contiennent des frames.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 var Element: variant; currPoint : TPoint; begin // recupere la position du pointeur souris sur l'ecran GetCursorPos(currPoint); // Converti la coordonnée ecran en coordonnée client (dans le webbrowser) currPoint := WebBrowser1.ScreenToClient(currPoint); //Determine quel element se trouve a cette coordonnée Element := WebBrowser1.OleObject.Document.elementFromPoint(CurrPoint.X,CurrPoint.Y); // rempli le formulaire Element.Value := 'essai';
Apparemment il faut passer par l'interface IHTMLDocument2.
j'ai donc essayé ceci:
ça permet de récupérer le code html du formulaire cliqué
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 var vHTMLElement: IHTMLElement; vPoint: TPoint; begin vPoint := WebBrowser1.ScreenToClient(Mouse.CursorPos); vHTMLElement := (WebBrowser1.Document as IHTMLDocument2).elementFromPoint(vPoint.X, vPoint.Y); edit1.text:= vHTMLElement.outerHTML;
ex: <INPUT id=username tabIndex=1 maxLength=96 name=login>
il suffirait ensuite d'ajouter la balise value=xxx
mais le problème c'est que là encore ça ne fonctionne pas avec des frames.
Donc là je commence a craquer mais ça m’embêterai vraiment de ne pas trouver de solution a ce problème.
Si quelqu'un a une idée pour m'aider ça serai super.
Merci d'avance
Partager