AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi TWbbrowser Formular ausfüllen und abschicken für Dummies
Thema durchsuchen
Ansicht
Themen-Optionen

TWbbrowser Formular ausfüllen und abschicken für Dummies

Ein Thema von goenner90 · begonnen am 3. Apr 2008 · letzter Beitrag vom 18. Mai 2008
Antwort Antwort
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#1

Re: TWbbrowser Formular ausfüllen und abschicken für Dummies

  Alt 3. Apr 2008, 19:04
Hallo und Willkommen in der Delphi-PRAXis!

Vorgehen:

Den Quelltext der Seite betrachten und den relevanten Teil suchen.
(Wenn du im Quelltext nach "Mitgliedsname" suchst, findest du diesen Code schnell)

Code:
   <form method="post" action="/passwort" id="login" onSubmit="javascript:ssl();">
   <div class="libo"><div style="height:10px"></div><div style="text-indent:8pt">Login:</div></div>
   <div class="lib">
   Mitgliedsname:
<input type="text" name="login[u]" class="libf">


   Passwort:
<input type="password" name="login[p]" class="libf"><input type="submit" name="Submit" value="login">


   [url="/passwort"]Passwort vergessen?[/url]


   <input type="checkbox" id="ssl_login" checked>[url="/infos/ssl/"]mit SSL-Verschl&uuml;sselung[/url]


    </div>
    </form>

Der "Mitgliedsname" muss also in das Input Feld mit dem Namen login[u]

Das "Passwort" muss also in das Input Feld mit dem Namen login[p]


Dann gehen wir alle Forms und darin enthaltenen Items durch und überprüfen, ob
der Name des Feldes mit unseren Feldern übereinstimmt.


Delphi-Quellcode:
var
  iForms, iItems: Integer;
  FormItem: OleVariant;
  FelddName: string;
begin
  FeldName := 'login[u]';
  // durch alle Forms iterieren
  for iForms := 0 to WebBrowser.OleObject.Document.forms.Length - 1 do
  begin
    FormItem := WebBrowser.OleObject.Document.forms.Item(iForms);
  // durch alle Form Items iterieren
    for iItems := 0 to FormItem.Length - 1 do
    begin
        // überprüfen, ob der Name des Items mit unserem gesuchten Feldnamen übereinstimmt
        if FormItem.Item(iItems).Name = FeldName then
        begin
          // Feld ausfüllen
          FormItem.Item(iItems).Value := 'Mein Mitgliedsname';
        end;
    end;
  end;

Verallgemeinert:

Delphi-Quellcode:
function WB_FillForm(WebBrowser: TWebBrowser; FieldName: string; sValue: string): Boolean;
var
  iForms, iItems: Integer;
  FormItem: OleVariant;
begin
  Result := False;
  for iForms := 0 to WebBrowser.OleObject.Document.forms.Length -1 do
  begin
    FormItem := WebBrowser.OleObject.Document.forms.Item(iForms);
    for iItems := 0 to FormItem.Length -1 do
    begin
      try
        if FormItem.Item(iItems).Name = FeldName then
        begin
          FormItem.Item(iItems).Value := sValue;
          Result := True;
        end;
      except
      end;
    end;
  end;
end;
Aufruf:

Delphi-Quellcode:
FillForm(Webbrowser1, 'login[u]','mein_Benutzername');
         FillForm(Webbrowser1, 'login[p]','mein_Passwort');
Die FillForm Prozedur kann natürlich auch erweitert werden, so dass mehrere Felder auf einmal übergeben werden und so ein mehrfaches iterieren der Felder entfällt.

Zum Abschicken genügt in diesem Fall dieser Aufruf:

WebBrowser1.OleObject.Document.forms.item(0).elements.item(2).click; Wichtig ist, dass die Felder erst dann ausgefüllt werden, wenn das Dokument im Webbrowser fertig geladen ist.
Thomas
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:04 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz