AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi [Ole]Button in Form einer Webseite 'anklicken'
Thema durchsuchen
Ansicht
Themen-Optionen

[Ole]Button in Form einer Webseite 'anklicken'

Ein Thema von Maxisoft2 · begonnen am 17. Mär 2008 · letzter Beitrag vom 19. Mär 2008
Antwort Antwort
Maxisoft2

Registriert seit: 8. Nov 2007
20 Beiträge
 
#1

[Ole]Button in Form einer Webseite 'anklicken'

  Alt 17. Mär 2008, 13:41
Hallo liebe Delphianer,

Hoffe dies steht im richtigen Forenteil -

Seit heute Früh knappse ich nun schon an dem Problem, dass ich einen Button auf einem Formular, besser gesagt der Webseite Schuelervz.de per Ole "anklicken" lassen will.

Die SuFu - Hier auf dem Board und bei Google - habe ich schon total ausgelutscht. Ich komme einfach nicht mehr weiter -

Es kommt nicht in Frage, die Daten direkt per http post an den Server zu senden, da ein Referrer geprüft, und ein Checkcode mitübergeben wird.

Hierzu mein Quelltext-Versuch:

Delphi-Quellcode:
procedure TPROfiler.Button1Click(Sender: TObject);
var
  ovElements: OleVariant;
  i: Integer;
begin
  ovElements := VZbrowse.OleObject.Document.forms.item(0).elements;
  for i := 0 to (ovElements.Length - 1) do
    if (ovElements.item(i).tagName = 'fieldBtnSubmit') and
    (ovElements.item(i).type = 'SUBMIT') then
      ovElements.item(i).Click;
end;
Problem: Es passiert 0,0 nichts - Einfach garnichts. Ich komme nicht dahinter weshalb -

Wie ihr sehen könnt durchsuche ich die Webseite nach dem Button mit angegebenem TagName und dem Typus - es ist nur ein einzgier Submit-Button auf der Seite vorhanden, wodurch meineserachtens keine Abfrage der Value wichtig ist. Dieser Submitbutton hat dazu noch immer eine andere value, d.h. ich kann in die Ole Abfrage auch unmöglich eine Value-Abfrage miteinbauen, da der Wert des Buttons ja immer ein anderer ist.

Zur Verständlichkheit ein Ausschnitt aus dem HTML-Quelltext der Seite, auf der der Button (in einem Div) liegt:

Code:

<div class="phxDialogTitle">Gruscheln</div>
            <div class="phxDialogContent">
                               





                Du möchtest [url="/Profile/d75189372afc6/"] &hearts;Victoria&hearts; Schmierer[/url] gruscheln?                </p>
                               



                 &#9829;Victoria&#9829; sieht dann auf der Startseite dein Gruscheln.               </p>
                            </div>
            <div class="phxDialogButtons">

                [b]<form name="performGruscheln" method="post" action="/Gruscheln/DialogGruscheln">              
                                    <input class="fieldBtnSubmit" type="submit" name="submit" value=" &hearts;Victoria&hearts; gruscheln!" />[/b]                                   [url="/Friends/Search/be1aaeaa40859fa5/name/victoria/o/"]Nein, doch nicht![/url]              
                                                            <input type="hidden" name="referrer" value="/Friends/Search/be1aaeaa40859fa5/name/victoria/o/" />                                           <input type="hidden" name="id" value="d75138e94372afc6" />                                      <input type="hidden" name="formkey" value="61f473f4a5ec0194fba7160ae8fcaed96214ed7513842b88843b81527bbff7b040a04972d213b311d8e73593e9f1be5b0acbb9519ae5894f3d2924bb2a1e48f2" />
<input type="hidden" name="iv" value="ef20b09419dceb2c71073a30738ea5ce" />
<input type="hidden" name="checkcode" value="d782b3cd094f79678a42a8e86109b980" />

                                            </form>                                               </div>
Wie ihr in der fett gedruckten Zeile sehen könnt, müsste es eigentlich klappen - Irgendeinen Fehler muss ich aber wohl gemacht haben.

Würde mich gigantisch über Eure Hilfe freuen,
Grüße,
- Max
  Mit Zitat antworten Zitat
dominikkv

Registriert seit: 30. Sep 2006
Ort: Gundelfingen
1.109 Beiträge
 
Delphi 2007 Professional
 
#2

Re: [Ole]Button in Form einer Webseite 'anklicken'

  Alt 17. Mär 2008, 13:46
Kommt er überhaupt zu der Zeile
ovElements.item(i).Click; (Mit Debugger nachprüfen)
Dominik
Wer anderen eine Grube gräbt, hat ein Gruben-Grab-Gerät!
  Mit Zitat antworten Zitat
Maxisoft2

Registriert seit: 8. Nov 2007
20 Beiträge
 
#3

Re: [Ole]Button in Form einer Webseite 'anklicken'

  Alt 17. Mär 2008, 14:03
Hallo!

Habe als Anfänger den Debugger leider noch nie "direkt" für logische probleme verwendet, und mich gerade versucht darüber zu informieren, also an der stelle nen Haltepunkt gesetzt, versucht mit F8 einzeln zeile für zeile zu gehen, werde jedoch nicht ganz schlau daraus. Auf gut Deutsch: Ich bekomme keinerlei feedback.

Gibt es noch eine andere Möglichkheit dem Ganzen auf den Grund zu gehen?

EDIT:
Theoretisch müsste mir ja etwas angezeigt werden, wenn die Procedure nicht ausgeführt wird - Laufzeitfehler oder Anderes, oder irre ich?
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: [Ole]Button in Form einer Webseite 'anklicken'

  Alt 17. Mär 2008, 14:54
Hallo Max,

dein Code passt nicht zu dem HTML-Fragment.

Delphi-Quellcode:
procedure TPROfiler.Button1Click(Sender: TObject);
var
  ovElements: OleVariant;
  i: Integer;
begin
  ovElements := VZbrowse.OleObject.Document.forms.item(0).elements;
  for i := 0 to (ovElements.Length - 1) do
    if SameText(ovElements.item(i).tagName, 'input')
    and SameText(ovElements.item(i).type, 'SUBMIT') then
    begin
      ovElements.item(i).Click;
      Break;
    end;
end;
Hast du es auch schonmal so probiert?

Delphi-Quellcode:
procedure TPROfiler.Button1Click(Sender: TObject);
begin
  VZbrowse.OleObject.Document.forms.item(0).submit;
end;
Grüße vom marabu
  Mit Zitat antworten Zitat
Maxisoft2

Registriert seit: 8. Nov 2007
20 Beiträge
 
#5

Re: [Ole]Button in Form einer Webseite 'anklicken'

  Alt 17. Mär 2008, 16:01
Hallo!

Danke für die Hilfe! Immerhin tut sich jetzt etwas - Die Suchfunktion, die nur etwas über der eigentlichen Form ist (und keinen button hat), wird angesprochen und bei einem Buttondruck bestätigt man so praktisch die Sucheingabe.

Ich müsste der Codezeile nun also beibringen, dass nicht die erste, sondern die zweite Form - in der der richtige Submit-Button ist - angesprochen wird. Geht das?

Grüße,
- Max

EDIT:
Code:
                                <form method="post" action="/Search/General" id="QuickFormSearch">
<fieldset>
    <input type="hidden" name="uniId" value="1948" />
    <input type="text" name="name" id="name" value="Leute finden" alt="Leute finden" class="preset" />
    <input type="hidden" name="formkey" value="da483d916248e13d54d0f619fd0dd617a541b4bea833441f9510d3fcd8bde5b960a65f4d44f615045d20132a1fcd9f30159fcc9a367acc8f05d46dbfc0abe6ba" />
Dieses Fieldset wird fälschlicherweise angesprochen, anstatt das weiter unten gelegene mit dem "Gruschel"-Button.
  Mit Zitat antworten Zitat
Maxisoft2

Registriert seit: 8. Nov 2007
20 Beiträge
 
#6

Re: [Ole]Button in Form einer Webseite 'anklicken'

  Alt 17. Mär 2008, 18:35
Ich habe ebenfalls schon versucht, die "0" mit einer "1" zu ersetzen, was nach meiner Logik ja bedeuten würde, dass das nächste Feld angesprochen wird -
"
Im Projekt Project1.exe ist eine Exception der Klasse EAccessViolation aufgetreten. Meldung: 'Zugriffsverletzung bei Adresse 00454247 in Modul 'Project1.exe'. Lesen von Adresse 00000000'. Prozess wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen.
"
Leider werde ich mit dieser Fehlermeldung aufgehalten .

Grüße,
- Max
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#7

Re: [Ole]Button in Form einer Webseite 'anklicken'

  Alt 18. Mär 2008, 20:39
Hallo Max,

befinden sich die beiden Forms überhaupt im selben Frame?

Freundliche Grüße
  Mit Zitat antworten Zitat
Maxisoft2

Registriert seit: 8. Nov 2007
20 Beiträge
 
#8

Re: [Ole]Button in Form einer Webseite 'anklicken'

  Alt 19. Mär 2008, 10:47
Hallo nocheinmal,

Ersteinmal, danke für die Hilfe bei der Fehlersuche!

Jau, es sind beide im selben Frame. Nun bin ich auch dahinter gekommen, weshalb ich die Fehlermeldung bekomme - Der Button wird "geklickt" aber die Webseite gibt die Meldung "Mitglied nicht gefunden" als Error zurück, sodass es für Delphi wie eine nicht ausführbare OLE Funktion aussah.

-> Ich glaube beim Submit muss die Value des Submit-Buttons mitübergeben werden, da sonst das Kommando nicht zugeordnet werden kann. Ist dies auch mit OLE möglich?

Grüße,
- Max

EDIT:
Meiomei ich stand aufm schlauchl.. ein einfaches .click am Ende hat die Magie geschehen lassen ;-9 Danke für Eure Hilfen !
  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 18:26 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz