![]() |
Button einer Web-Seite "drücken" lassen
Hi.
ich will, dass mein programm, nach dem durchsuchen des quelltextes, automatisch auf einer Internetseite einen Button drücken lässt. Button sieht wie folgt aus: Zitat:
So, jetzt hab ich leider keine ahnung wie das gehen soll...Wenn möglich möchte ich auf Komponenten wie TWebBrowser verzichten. Kann mir da jemand helfen ? ;-) |
Re: Button einer Web-Seite "drücken" lassen
das hört sich ganz eindeutig an, als wolltest du ein Browsergame hacken. und sowas machen wir hier nicht.
obwohl es sowas von einfach ist... alle buttons in browsergames sind links(auch und gerade submit-buttons), und links kann man folgen... leute, wenn ihr schon cracken wollt, wieso stellt ihr euch dann so an? |
Re: Button einer Web-Seite "drücken" lassen
Nein, das will ich nicht ;-)
und wo ist da Zitat:
hab keine ahnung wie das gehen soll... |
Re: Button einer Web-Seite "drücken" lassen
der link is im action-attribut des form-tags :stupid:
wenn in method dann get drinsteht, hast du sowieso schon gewonnen. |
Re: Button einer Web-Seite "drücken" lassen
Mit dem Webbrowser wärs relativ einfach.
![]() Ohne musste dir den Link halt zusammenbasteln. Klappt aber auch nicht immer. Das <form> hat irgendwo ein Target eingetragen. Dahinter die Werte mit ?<wert>=<value>&<wert2>=<value2>&..... |
Re: Button einer Web-Seite "drücken" lassen
Danke erstmals.
|
Re: Button einer Web-Seite "drücken" lassen
Habs jetzt doch mit TWebbrowser gemacht ;-)
hab folgendes Script verwendet:
Delphi-Quellcode:
Danke @All.
PROCEDURE ClickOnButton(WebBrowser1:TWebBrowser; BT_text:STRING);
VAR ovElements,ovFrames: OleVariant; i,j,k: Integer; BEGIN IF Webbrowser1.OleObject.Document.Frames.Length > 1 THEN BEGIN ovFrames := Webbrowser1.OleObject.Document.Frames; FOR j := 0 TO (ovFrames.Length - 1) DO FOR k := 0 TO (ovFrames.Item(j).Document.Forms.Length - 1) DO BEGIN ovElements := ovFrames.Item(j).Document.Forms.Item(k).elements; FOR i := 0 TO (ovElements.Length - 1) DO IF ((ovElements.Item(i).tagName = 'INPUT') AND (ovElements.Item(i).type = 'submit') AND (ovElements.Item(i).Value = BT_text)) THEN ovElements.Item(i).Click; END; END ELSE BEGIN FOR j := 0 TO (WebBrowser1.OleObject.Document.forms.Length - 1) DO BEGIN ovElements := WebBrowser1.OleObject.Document.forms.item(j).elements; FOR i := 0 TO (ovElements.Length - 1) DO IF ((ovElements.item(i).tagName = 'INPUT') AND (ovElements.item(i).type = 'submit') AND (ovElements.item(i).Value = BT_text)) THEN ovElements.item(i).Click; END; END; END; |
Re: Button einer Web-Seite "drücken" lassen
und was mach ich, wenn mehrere buttons die gleiche beschriftunghaben???
|
Re: Button einer Web-Seite "drücken" lassen
Hi.
Das name-Attribut sollte auf jeden Fall eindeutig sein. :zwinker: |
Re: Button einer Web-Seite "drücken" lassen
Zitat:
|
Re: Button einer Web-Seite "drücken" lassen
die kannst du dann anhand der Forms unterscheiden.
|
Re: Button einer Web-Seite "drücken" lassen
tut mir leid, das sagt mir nichts, kannst du mir ein codebeispiel geben wie ich das machen muss?
|
Re: Button einer Web-Seite "drücken" lassen
Haste doch oben
Delphi-Quellcode:
j ist die Nummer des Formulars, dass du gerade ausliest
WebBrowser1.OleObject.Document.forms.item(j).elements
|
Re: Button einer Web-Seite "drücken" lassen
Hä?
In meinem Beispiel ist nur das 1.value unterschiedlich...wie genau kann ich das auslesen... in dem code von xero wird ja nur das letzte value gelesen oder? |
Re: Button einer Web-Seite "drücken" lassen
Nein. In deinem Beispiel unterscheiden sich die Forms vielleicht nicht vom Aufbau her. Nichts desto Peng sind es 2 verschiedene Forms, die du z.B. mit WebBrowser1.OleObject.Document.forms.item(0) und WebBrowser1.OleObject.Document.forms.item(1) ansprechen kannst. In dem Beispiel werden alle vorhandenen Forms in Schleife nacheinander durchlaufen und innerhalb dieser Schleife werden alle Felder der jeweiligen Forms nochmal durchlaufen und überprüft, ob es sich um das gesuchte handelt.
In deinem Fall hast du 2 Möglichkeiten: 1. Du weisst, welches Formular welche Nummer hast ( z.B. durch ausprobieren ) 2. Du überprüfst zunächst, ob es innerhalb des Formulars das Feld Make mit "irgendwas1" bzw. "irgendwas2" gibt. |
Re: Button einer Web-Seite "drücken" lassen
Zitat:
wie mach ich das? :lol: :oops: |
Re: Button einer Web-Seite "drücken" lassen
Tu mir und dir selbst einen gefallen und versuch erstmal das Beispiel zu verstehen, bevor du fragst. Da wird genau das gemacht:
Delphi-Quellcode:
ovElements.item(i).Value = 'irgendwas1' etc...
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:38 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