web sayfalarına otomatik giriş için kullandığım , sayın marman hocamın çok güzel bir kod örneği var. Bu kod örneğinde, web sayfasındaki formlarda bulunan elementlerin name lerini alabilyorum. Fakat Form1.WebBrowser1.OleObject.Document.Forms.Item(i).Elements.Item(j).Name ] şeklinde name alabiliyorsak id sinide alabiliriz. ( websayfasında id si sürekli değişen elementler var , parse işlemi ile almaktansa bu şekilde alabilirsem websayfası değişse bile sorun çıkmıyacaktır )
teşekkürler.
Kod: Tümünü seç
procedure getir;
Var
i,j : Integer;
begin
while Form1.WebBrowser1.ReadyState <> ReadyState_Complete do Application.ProcessMessages;
Form1.Memo1.Lines.Clear;
if Form1.WebBrowser1.OleObject.Document.Frames.Length > 0 then begin
Form1.Memo1.Lines.Add('');
Form1.Memo1.Lines.Add('-----------------------------');
Form1.Memo1.Lines.Add('FRAMES bilgileri');
Form1.Memo1.Lines.Add('-----------------------------');
for i := 0 to Form1.WebBrowser1.OleObject.Document.Frames.Length - 1 do
begin
Form1.Memo1.Lines.Add( Format('WebBrowser1.OleObject.Document.Frames.Item(%d)', [i]) );
end;
end;
if Form1.WebBrowser1.OleObject.Document.Forms.Length > 0 then begin
Form1.Memo1.Lines.Add('');
Form1.Memo1.Lines.Add('-----------------------------');
Form1.Memo1.Lines.Add('FORMS bilgileri');
Form1.Memo1.Lines.Add('-----------------------------');
for i := 0 to Form1.WebBrowser1.OleObject.Document.Forms.Length - 1 do
begin
Form1.Memo1.Lines.Add( Format(' Form1.WebBrowser1.OleObject.Document.Forms.Item(%d).Document.Body.InnerHTML', [i]) );
for j := 0 to Form1.WebBrowser1.OleObject.Document.Forms.Item(i).Elements.Length - 1 do begin
Form1.Memo1.Lines.Add( Format(' Form1.WebBrowser1.OleObject.Document.Forms.Item(%d).Elements.Item(%d).Name -> ''%s'' ', [i, j, Form1.WebBrowser1.OleObject.Document.Forms.Item(i).Elements.Item(j).Name ]) );
end;
end;
end;
ShowMessage('Bitti');end;