-
Wadim005 (19.05.09 11:54) [0]Приветствую.
Не могу понять, как кликнуть на нужную мне кнопку в IWebBrowser2
в TWebBrowser решил, все просто и понятно, а тут не пойму
function TForm1.ClickButtons(WB: IWebBrowser2; textFind:String):boolean;
var form:variant;
CountElement, linkCount, i:integer;
Element:variant;
begin
result:=False;
Document := WB.Document as IHtmlDocument2;
linkCount:=Document.forms.length;
//getelementsbytagname('a');
//ShowMessage(IntToSTr(linkCount));
form:=Document.forms;
for i:=1 to linkCount-1 do begin
Element:=form.item(i);
form.item(i).click;
//CountElement:=form.item(i).count;
//ShowMessage(IntToStr(CountElement));
//ShowMessage(form.item(i).innerHtml);
//if (form.item(i).type='submit') then begin
//end;
end;
{
for f:=0 to WebBrowser1.OleObject.Document.forms.Length-1 do begin
form:=WebBrowser1.OleObject.Document.forms.Item(f).elements;
for i:=0 to form.Length-1 do
if (form.item(i).type='submit') then begin
form.item(i).click; // submit ýòî êíîïêà 'Âîéòè' ýòî íàçâàíèå êíîïêè
end;
}
end;
получается получить только innerhtml всего объекта формы, но никак до ее елементов не могу достучатся! -
clickmaker © (19.05.09 18:14) [1]Document.all.tags('input') и искать там уже нужный?
-
Wadim005 (22.05.09 07:19) [2]Вот так наконец-то получилось
procedure TfrmMain.N121Click(Sender: TObject);
var
HtmlDocument : IHtmlDocument2;
HtmlCollection : IHtmlElementCollection;
HtmlElement : IHtmlElement;
I : Integer;
begin
HtmlDocument := WebBrowser1.Document as IHtmlDocument2;
HtmlCollection := HtmlDocument.All;
for I := 0 to HtmlCollection.Length - 1 do
begin
HtmlElement := HtmlCollection.Item(i, 0) as IHtmlElement;
if HtmlElement.tagName='INPUT' then
begin
if pos('Имя кнопки', HtmlElement.outerHTML)>0 then
begin
HtmlElement.click;
break;
end;
end;
end;
end;