Entwickler-Ecke
Internet / Netzwerk - Button in TWebBrowser "drücken"
pesi - Do 02.07.09 13:52
Titel: Button in TWebBrowser "drücken"
Ja ja... ich weiss, es gab schon 1000 Fragen dazu und es gibt auch 1001 Antwort im Netz dazu, aber ich komm´ trotzdem nicht weiter.
Also, ich möchte gerne einen Submit-Button auf einer HTML-Seite, die ich im TWebBrowser geladen habe drücken (die Felder für Login und Passwort ausfüllen läuft schon). Im HTML-Quellcode lautet die Zeile mit dem "Submit-Button"
| Zitat: |
<td colspan="3"><input type="submit" name="submit" value="Submit" class="formNormalButton"></td>
|
und ich habe es mit:
Delphi-Quelltext
1:
| WebBrowser1.OleObject.Document.forms.item(0).elements.item(0).click; |
und ähnlichen Ansätzen aus dem Netz bisher leider nur erfolglos probiert.
Liegt es an der Art und Weise wie der Button auf der Website definiert ist? (sorry, html ist nicht meine Welt!)
Ihr könnte auch gerne mal schauen, die Seite ist ja kein Geheimnis:
http://mye-supportcentre.amadeus.com/eTass/jsp/login.jsp
Wäre toll, wenn mir jemand weiterhelfen könnte.
Gruß Peter
---
Moderiert von
Narses: Beiträge zusammengefasst---
Moment mal... glaube mir ist noch was aufgefallen. Bitte erst mal ignorieren, melde mich später hier wieder
---
Moderiert von
Narses: Beiträge zusammengefasst---
Sorry... ALSO... Es funktioniert noch nicht und ich bitte daher um Hiiiiilfe.
Danke & Gruß
ffgorcky - Do 02.07.09 16:40
Dazu müsstest Du doch eigentlich einfach nur diese beiden Zeilen ranhängen - oder?
Delphi-Quelltext
1: 2:
| Keybd_Event(VK_RETURN,0,0,0); Keybd_Event(VK_RETURN,0,KEYEVENTF_KEYUP,0); |
Es wäre aber schön, wenn Du uns denn Deinen bisherigen Ausfüll-Quelltext auch hier offenbarst.
pesi - Do 02.07.09 17:05
Ne, leider nicht. Hatte ich vielleicht vergessen zu erwähnen, dass ich das senden von VK_RETURN auch schon probiert hatte :-(
Trotzdem Danke!
SvenAbeln - Do 02.07.09 18:51
Delphi-Quelltext
1:
| WebBrowser1.OleObject.Document.forms.item(0).elements.item(7).click; |
Der Submit Button ist auf dieser Webseite nicht an Index 0, sonder an Index 7.
toms - Do 02.07.09 19:30
oder so (ist vielleicht besser nachvollziehbar):
Quelltext
1:
| WebBrowser1.OleObject.Document.authenticationForm.submit.Click; |
ffgorcky - Do 02.07.09 20:06
toms hat folgendes geschrieben : |
oder so (ist vielleicht besser nachvollziehbar):
Quelltext 1:
| WebBrowser1.OleObject.Document.authenticationForm.submit.Click; | |
Zu dieser Lösung müsste der Button ja auch wieder als Submit-Button deklariert sein.
Das scheint ja nicht so zu sein, wenn ich sein Problem jetzt gerade richtig verstanden habe - sonst müsste er ja auch ohne weiteres auf Return reagieren.
Aber die Lösung von
SvenAbeln könnte klappen.
Ich bin auf dem Gebiet ja leider nicht so bewandert, aber das sieht vielversprechend aus!
toms - Do 02.07.09 20:37
Der Button Name ist "submit". VK_RETURN zu simulieren ist in diesem Zusammenhang nicht die saubere Variante.
pesi - Fr 03.07.09 09:23
:!: :!: :!: AND THE WINNER ISSSSS....: SVEN ABELN !!! :!: :!: :!:
Es funktioniert - 1000 DANK!!! :D
Aber da ich der absolute HTML-DAU bin würde mich natürlich schon interessieren woher Du das mit dem Index/Item 7 wusstest, wo das im HTML-Quellcode stand oder wie Du darauf gekommen bist. Dann stell ich mich beim nächsten Mal vielleicht nicht wieder so blöd an :roll:
Gruß Peter
toms - Fr 03.07.09 10:35
pesi hat folgendes geschrieben : |
:!: :!: :!: AND THE WINNER ISSSSS....: SVEN ABELN !!! :!: :!: :!:
|
funktioniert denn
WebBrowser1.OleObject.Document.authenticationForm.submit.Click;
nicht?
pesi hat folgendes geschrieben : |
:!: :!: :!: AND THE WINNER ISSSSS....: SVEN ABELN !!! :!: :!: :!:
Aber da ich der absolute HTML-DAU bin würde mich natürlich schon interessieren woher Du das mit dem Index/Item 7 wusstest, wo das im HTML-Quellcode stand oder wie Du darauf gekommen bist. Dann stell ich mich beim nächsten Mal vielleicht nicht wieder so blöd an :roll: |
Schau mal den Quelltext an und zähle die Inputs. Der Submit Button befindet sich an 7. Stelle.
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| authenticationForm (0) language = en hidden (1) country = hidden (2) confirmLogin = true hidden (3) askingService = login hidden (4) fromLoginPage = true hidden (5) username = text MaxLen=50 (6) password = password (7) submit = Submit submit |
PS: Wenn ein Input Element auf der Webseite hinzugefügt wird, funktioniert dein Code nicht mehr wenn sich der Submit Button nicht mehr an 7. Stelle befindet.
Darum lieber so:
Quelltext
1:
| Webbrowser1.OleObject.Document.forms.item(0).elements.item('submit').click; |
oder so:
Quelltext
1:
| WebBrowser1.OleObject.Document.authenticationForm.submit.Click; |
pesi - Fr 03.07.09 11:41
Jepp,
WebBrowser1.OleObject.Document.authenticationForm.submit.Click;
als auch
Webbrowser1.OleObject.Document.forms.item(0).elements.item('submit').click;
funktionieren prima! Und da es, wie Du so richtig sagst, deutlich "zukunftssicherer" ist werde ich dann wohl eines der beiden verwenden.
Vielen Dank an alle!!!
Moderiert von
Narses: Delphi-Tags hinzugefügt und BB-Code aktiviert
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!