![]() |
Button in TWebbrowser drücken!
Nabend,
Ich habe scho im Forum gesucht aber nichts zu meinem Problem gefunden. Um mal kurz meine Situation zu erklären: Ich bin 92 Jahre alt .. Nein spaß bei Seite :-D Ich habe 2 Buttons ein Edit und einen TWebbrowser. In dem Edit gebe ich eine URL ein navigiere damit den TWebbrowser(mit dem ersten button) und mit dem zweiten Button wird bzw. soll ausgelöst werden das in dem TWebbrowser 3-Mal die Taste Tab gedrückt wird und dann enter. Nur funkrioniert das nicht wenn ich Tab drücken lasse wird dies nur in meiner Programm-Oberfläche ausgeführt, nicht im TWebbrowser. Dazu habe ich dann folgendes benutzt, das aber auch nicht funktioniert k.A warum:
Delphi-Quellcode:
Ist da was falsch dran oder warum macht er das nicht?
postMessage(WebBrowser1.Handle,WM_KEYDOWN,vk_tab,0);
Vlt hab ihr ja auch einen anderen Lösungsvorschlag, wäre euch sehr dankbar. Im Prinzip will ich einen Button in einem TWebbrowser drücken muss dies aber über diesen Umweg machen, da ich schon sämtlichen Möglichkeiten ausprobiert hab die leider nicht funktionieren, wenn ich mich eines besseren belehrern könnt bitte... Lg La.Reunion PS:. Danke! |
Re: Button in TWebbrowser drücken!
Hallo
Vielleicht koenntest du den relevanten (HTML) Source Code posten? |
Re: Button in TWebbrowser drücken!
Delphi-Quellcode:
SO das müsste der wichtige teil sein
<div id="068be3997902ffa0cf91c6b411a0bcb8d" style="text-align: center;">
<button onclick="javascript:RapidSafePSC('3f76h6m451vg=4g161vou4u70&t=068be3997902ffa0cf91c6b411a 0bcb8d&d=068be3997902ffa0cf91c6b411a0bcb8&p=1','068be3997902ffa0cf91c6b411a0bcb8d');">Premium</button> <button onclick="javascript:RapidSafePSC('3f76h6m451vg=4g161vou4u70&t=068be3997902ffa0cf91c6b411a0bcb8d &d=068be3997902ffa0cf91c6b411a0bcb8&p=0','068be3997902ffa0cf91c6b411a0bcb8d');">Free</button> <span style="font-size: x-small;">0:0 clicks</span> HAbe das auch damit versucht, ich weiß aber nicht was ich da eintragen soll
Delphi-Quellcode:
[edit=Admin]wg. Darstellungsfehlern neu in Cache eingetragen Mfg, Daniel[/edit]
WebBrowser1.OleObject.Document.forms.item(0).elements.item(0).click;
|
Re: Button in TWebbrowser drücken!
Klappt es so vielleicht?
Delphi-Quellcode:
var divb: IHTMLElement;
begin divb:=(WebBrowser1.Document as IHTMLDocument3).getElementById('068be3997902ffa0cf91c6b411a0bcb8d'); ((divb.children as IHTMLElementCollection).item(0, 0) as IHTMLElement).click; end; |
Re: Button in TWebbrowser drücken!
Da gibt es aber noch 2 Probleme!
1.: die ID oder der Name ändert sich jedesmal. 2.: RapidTec (also RapidShare, RapidForum, etc.) haben es in ihren AGB verboten, solche Programme zu nutzen, die die abläufe der Seite automatisieren. Hatten wir auch schonmal hier irgendwo im forum! |
Re: Button in TWebbrowser drücken!
Zitat:
|
Re: Button in TWebbrowser drücken!
Ich hatte es mir aber auch so ähnlich gedacht, warum sollte man sonst eine GUID als ID nehmen.
Gegen den Punkt zwei würde sich nichts machen lassen. Punkt eins wäre, wenn die Seite nicht immer total umgebaut wird, aber wenigstens etwas lösbar, elementFromPoint, eine Kollektion nur der Buttons usw. |
Re: Button in TWebbrowser drücken!
Danke schonmal für eure Antowrten und Überlegungen.
ich tests mal vlt find ich ja au noch was raus. UND was ist wwenn man es durch das "tastendrücken" automatisiert? |
Re: Button in TWebbrowser drücken!
hier mal nochn teil mit dem ich es versucht hab:
Delphi-Quellcode:
procedure SubmitWebForm(webform:OleVariant);
var i : Integer; formitem : OleVariant; itemtype, itemname : string; begin // Schleife über alle Items eines WebFormulars For i:= webform.Length-1 downto 0 do begin formitem := webform.Item(i); itemtype := UpperCase(formitem.Type); itemname := UpperCase(formitem.Name); // if it's a submit button: click it if itemtype = 'SUBMIT' then begin formitem.Click; Exit; end else if (itemtype='BUTTON') and (itemname='Free') then begin formitem.Click; Exit; end end; // try default submit Method webform.submit; end; procedure TForm1.Button2Click(Sender: TObject); begin SubmitWebForm(WebBrowser1.OleObject.document.forms.Item(0)); end; procedure TForm1.Button1Click(Sender: TObject); begin Webbrowser1.Navigate(Edit1.TExt); end; end. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:45 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