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:
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';
le problème c'est que ça ne fonctionne pas avec les sites qui contiennent des frames.

Apparemment il faut passer par l'interface IHTMLDocument2.

j'ai donc essayé ceci:

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;
ça permet de récupérer le code html du formulaire cliqué
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