Avatar billede hclarsen Nybegynder
21. februar 2005 - 17:08 Der er 6 kommentarer og
1 løsning

Problem med udfyldning af info på hjemmeside

Jeg forstår ikke, hvorfor mit program ikke udfylder tekstboksene og trykker på knappen?


function FillForm(WebBrowser: TWebBrowser; FieldName: string; Value: string): Boolean;
var
  i, j: Integer;
  FormItem: Variant;
begin
  Result := False;
  //no form on document
  if WebBrowser.OleObject.Document.all.tags('FORM').Length = 0 then
  begin
    Exit;
  end;
  //count forms on document
  for I := 0 to WebBrowser.OleObject.Document.forms.Length - 1 do
  begin
    FormItem := WebBrowser.OleObject.Document.forms.Item(I);
    for j := 0 to FormItem.Length - 1 do
    begin
      try
        //when the fieldname is found, try to fill out
        if FormItem.Item(j).Name = FieldName then
        begin
          FormItem.Item(j).Value := Value;
          Result := True;
        end;
      except
        Exit;
      end;
    end;
  end;
end;

function SubmitForm(WebBrowser: TWebBrowser; SubmitButton: string): Boolean;
var
  i, j: Integer;
  FormItem: Variant;
begin
  Result := False;

  if WebBrowser.OleObject.Document.all.tags('FORM').Length = 0 then
    Exit;

  for I := 0 to WebBrowser.OleObject.Document.forms.Length - 1 do
  begin
    FormItem := WebBrowser.OleObject.Document.forms.Item(I);
    for j := 0 to FormItem.Length - 1 do
    begin
      try
        if FormItem.Item(j).Value = SubmitButton then
        begin
          FormItem.Item(j).click;
          Result := True;
        end;
      except
        Exit;
      end;
    end;
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Form1.left := (screen.width div 2) - (Form1.width div 2);
  Webbrowser1.Navigate('http://www.studienet.dk');
  end;

procedure TForm1.WebBrowser1DownloadComplete(Sender: TObject);
begin
  Fillform(Webbrowser1, 'username', 'TestBrugernavn');
  Fillform(Webbrowser1, 'password', 'TestPassword');
end;
Avatar billede stoney Nybegynder
21. februar 2005 - 17:18 #1
formen hedder loginForm og IKKE FORM

Stoney
Avatar billede hclarsen Nybegynder
21. februar 2005 - 17:23 #2
Så det bliver "WebBrowser.OleObject.Document.all.tags('Loginform').Length = ..." ?
Avatar billede whizzper Nybegynder
21. februar 2005 - 17:45 #3
WebBrowser.OleObject.Document.all.tags('loginForm').Length = ...
Avatar billede hclarsen Nybegynder
21. februar 2005 - 17:48 #4
Ok, det virker desværre heller ikke
Avatar billede stoney Nybegynder
21. februar 2005 - 18:07 #5
uses mshtml


procedure TForm1.Button1Click(Sender: TObject);
var
  TheForm: IHTMLFormElement;
begin

  TheForm := (WebBrowser1.Document as IHTMLDocument2).all.item('loginForm', 0)
as IHTMLFormElement;
  if Assigned(TheForm)
  then begin

    (TheForm.item('username', 0) as IHTMLInputElement).value := 'Delphi';
    (TheForm.item('password', 0) as IHTMLInputElement).value := 'password';
    TheForm.submit;
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
WebBrowser1.Navigate('http://www.studienet.dk/account/checklogin.asp');
end;


Stoney
Avatar billede hclarsen Nybegynder
21. februar 2005 - 18:14 #6
Ja, det virker og koden ser da også væsentlig mere beskeden ud.

Ser gerne at du lægger et svar. Men af nysgerrighed, hvad var det så der gjorde at det andet ikke virkede?
Avatar billede hclarsen Nybegynder
18. juli 2005 - 21:47 #7
Lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB