Je cherche une métode pour valider un bouton d'une page web charger dans un WebBrowser automatiquement.
le morceau de code que je vous présente m'à était transmi par "sylvunix"(que je remerci).
Ce code repère puis valide d'un click automatiquement un mot d'une pages web, ici le mot images de Google.
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
| uses ..., MSHTML, ActiveX, ComObj;
.../...
procedure TForm1.Button2Click(Sender: TObject);
const
texteRecherche = 'Images';
var
iDocument: IHTMLDocument2;
iElement: IHTMLElement2;
iElementCollection: IHTMLElementCollection ;
iDomNode: IHTMLDOMNode;
iDispatchCollection, iDispatchAttribute: IDispatch;
iAttributesCollection: IHTMLAttributeCollection;
iDomAttribute: IHTMLDOMAttribute;
i, j: Integer;
v: OleVariant;
begin
iDocument := WebBrowser1.Document as IHTMLDocument2;
iElementCollection:= iDocument.Links;
for i := 0 to iElementCollection.Length-1 do
begin
iElement:= iElementCollection.Item(i,0) as IHTMLElement2;
iElement.QueryInterface(IID_IHTMLDOMNode, iDomNode);
iDispatchCollection := iDomNode.Attributes;
if iDispatchCollection <> nil then
begin
iDispatchCollection.QueryInterface(IID_IHTMLAttributeCollection, iAttributesCollection);
for j := 0 to iAttributesCollection.Length-1 do
begin
v := j;
iDispatchAttribute:=iAttributesCollection.Item(v);
iDispatchAttribute.QueryInterface(IID_IHTMLDOMAttribute ,iDomAttribute);
if iDomAttribute.Specified then
begin
if (iDomAttribute.nodeName = 'href') and (iElement.getAdjacentText('afterBegin') = texteRecherche) then
WebBrowser1.Navigate(iDomAttribute.nodeValue);
end;
end;
end;
end;
end; |
[COLOR="Black"]mon pb est que le mot que je veux clicker agit et modifie la page html sans changer l'URL
exemple:le bouton"Choix au hasard"de la page web sur laquelle je souhaite agir.
<a href="#" onclick="return(numbersRandomSelect())" class="grid_btnblock">Choix au<br>hasard</a>
en fait ça rempli une grille de type LOTO qui est à la base vide de manière aléatoire
je pense que mon pb se situe à la fin du code de "sylvunix"
WebBrowser1.Navigate(iDomAttribute.nodeValue);
end;
je pense que WebBrowser1.Navigate est mon pb car je ne souhaite pas me diriger sur une URL mais valider onclick="return(numbersRandomSelect()) de la fameuse page web charger dans mon webbrowser.
j'espère ne pas avoir été trop compliqué dans mes explications.
quelqu'un connait-il une solution?
Merci à vous.
Partager