Autor Beitrag
Bergmann89
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1742
Erhaltene Danke: 72

Win7 x64, Ubuntu 11.10
Delphi 7 Personal, Lazarus/FPC 2.2.4, C, C++, C# (Visual Studio 2010), PHP, Java (Netbeans, Eclipse)
BeitragVerfasst: Fr 28.05.10 02:19 
Hey,

ich habe folgenden HTML Code:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
<TABLE BORDER="0" CELLSPACING="0" CELLPADDING="5">
<TR>
  <TD>
    <INPUT TYPE="TEXT" CLASS="TEXT" MAXLENGTH="10" SIZE="10" NAME="TEXT" ID="INPUTTEXT" VALUE="">
  </TD>
  <TD>
    <INPUT TYPE="SUBMIT" CLASS="BUTTON" NAME="ACTION" VALUE="Anmelden">
  </TD>
</TR>
</TABLE>

Gibt es eine Möglichkeit mit Delphi in die Textbox was reinzuschreiben und dann den Button zu drücken? Wenn ja wie mach ich das? Ich hab schon n bisl Erfahrung mit der IdHTTP-Komponente vlt kann man darauf aufbauen?

MfG & Thx Bergmann.

_________________
Ich weiß nicht viel, lern aber dafür umso schneller^^
Xentar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2077
Erhaltene Danke: 2

Win XP
Delphi 5 Ent., Delphi 2007 Prof
BeitragVerfasst: Fr 28.05.10 09:06 
Such mal nach HTTP Forms oder sowas in der Art..
Das Thema gibts hier wohl oft genug ;)

_________________
PROGRAMMER: A device for converting coffee into software.
bummi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1248
Erhaltene Danke: 187

XP - Server 2008R2
D2 - Delphi XE
BeitragVerfasst: Fr 28.05.10 09:14 
nicht wirklich sinnvoller Code aber als Basis:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
var
  WB: SHDocVw_TLB.TWebBrowser;
  Flags,
  TargetFrameName,
  PostData,
  Headers : OleVariant;
 o:olevariant;
begin
  WB := SHDocVw_TLB.TWebBrowser.Create(Self);
  TWinControl(WB).Parent := Panel1;
  WB.Align               := alClient;
      Flags           := 0;
    TargetFrameName := NULL;
    PostData        := NULL;
    Headers         := NULL;
    WB.Navigate('C:\Users\twassermann\Desktop\test.html', Flags, TargetFrameName, PostData, Headers);
  Sleep(1000);
  Application.ProcessMessages;
  Sleep(1000);
  o:=WB.OleObject.document.forms.item(0).all;
  o.tags('input').item(0).setAttribute('value','TEST');
  o.tags('input').item(1).Click;




allerdings brauchst Du in der HTML-Datei auch das dazugehörige Form

also z.B.

<html>
<form action="http://www.wasauchimmer/ebbes.pl" method="get">

und die Closetags
LSanchez
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 26
Erhaltene Danke: 8



BeitragVerfasst: Fr 28.05.10 10:39 
Hallo,

ich habe mal eine Unit "U_WWWForm.pas" in Delphi 7 geschrieben, die bei der Auffüllung eines Web-Formulars hilft.


Beispiel-Code für deine Aufgabe:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
procedure Tfrm_WFAdmin.Button1Click(Sender: TObject);
begin
    U_WWWForm.WebFeldFunktion_Durchfuehren(WebBrowser.ControlInterface,
                                           0,
                                           'TEXT',
                                           'INPUT',
                                           'Mein neuer Wert',
                                           1);
    U_WWWForm.WebFeldFunktion_Durchfuehren(WebBrowser.ControlInterface,
                                           0,
                                           'ACTION',
                                           'INPUT',
                                           '',
                                           2);
end;

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
function WebFeldFunktion_Durchfuehren(const pWebbrowser: IWebBrowser2;
                                      const formNumber: integer;
                                      const fieldName, fieldTag, newValue: string;
                                      const fieldFunction: Smallint):boolean;
// *****************************************************************************
// formNumber    = Nummer der Form, wo das Feld sich befindet
//                 (wird nur für fieldFunction 1, 2 und 4 gebraucht)
// fieldName     = Feldname
//                 (wird nur für fieldFunction 1 und 2 gebraucht)
// fieldTag      = TagName des Feldes
// newValue      = Inhalt ist abhängig von fieldFunction
//                 (wird nur für fieldFunction 1 (neuer Wert),
//                                             3 (URL) und
//                                             5 (JavaScript) gebraucht)
// fieldFunction = 1 ("newValue" wird in das Feld geschrieben)
//               = 2 (Klick auf das Feld)
//               = 3 (Navigate zu "newValue")
//               = 4 (Submit der Form mit der Nummer "formNumber")
//               = 5 (JavaScript "newValue" wird durchgeführt)
// *****************************************************************************

Moderiert von user profile iconNarses: Delphi-Tags hinzugefügt
Einloggen, um Attachments anzusehen!
Bergmann89 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1742
Erhaltene Danke: 72

Win7 x64, Ubuntu 11.10
Delphi 7 Personal, Lazarus/FPC 2.2.4, C, C++, C# (Visual Studio 2010), PHP, Java (Netbeans, Eclipse)
BeitragVerfasst: Fr 28.05.10 17:30 
Hey,

funktioniert wunderbar, allerdings gibt es noch einen kleinen Fehler. Und zwar kommt jedesmal wenn ich den Button drücken lasse ein RuntimeError und der Just-In-Time-Debuger von Windows springt an: "Unbehandelte Ausnahme ('this.document.INPF.TEXT' ist Null oder kein Objekt)". Dann fragt er ob ich debugen will oder nich, wenn ich nein klickt geht es ohne Probleme weiter. Ich hab auch schon versucht ein try-except-Block drum zu machen, aber das geht auch nicht. Es scheint auch keine normale Exception zu sein, weil da ja normalerweiße der Delphi-Debuger anspringen würde. Hat jmd ne Idee wie ich das beheben kann?

MfG & Thx Bergmann

_________________
Ich weiß nicht viel, lern aber dafür umso schneller^^
LSanchez
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 26
Erhaltene Danke: 8



BeitragVerfasst: Mo 31.05.10 11:52 
Hallo,

wie seht deine HTML-Seite jetzt aus? macht der Button irgendwas?


Gruß

L. Sanchez
P@u1
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 117



BeitragVerfasst: Sa 19.06.10 16:12 
Hi,

ich habe jetzt ein ähnliches Problem, und schreib jez einfach mal hier in den Thread, wenn ich nen neuen aufmache kommt sonst, dass es davon schon threads gibt.

Also ich möchte auch auf einen Button bei einer Seite drücken lassen automatisch (ohne das wirklich ein Mausklick ausgeführt wird).

Ich habe die hochgeladene Unit schon benutz und damit einige Tests gemacht.
Leider passiert bei der Seite, für die ich das benutzen wollte rein gar nichts.
Hier der Link:
sportwetten-magazin....spielen-clearen.html
Es geht um den "Suche" Button!
Ich hab mir den feldnamen ausm Quelltext geholt und beim feldtag war ich mir nicht ganz sicher, hab aber verschiedenes versucht, es ist jedes mal einfach nichts passiert.
Wenns euch dabei hilft, mir zu helfen, kann ich die Delphi-Dateien vom Programm, mit dem ich das versucht hatte noch hochladen.

Vielen Dank für eure Hilfe schonmal!

Paul