![]() |
link klicken im twebbrowser simulieren?
hallo!
wie kann ich im twebbrowser einen link "klicken" auf einer geladenen seite? der link kann nahand des angegeben textes erkannt werden, aber nicht duche den verweis, da der sich immer wieder ändert. gibt es da einen befehl ähnlich dem beim absenden von formularen? und wie müßte ich es anstellen das genau dieser link geklickt wird? wollte eher sowas wie einen klick auf den link simulieren. beim auslesen des verweises gehen irgendwelche infos verloren und ich komme nicht da an wo ich will. allerdings wenn ich im twebbr. den link klicke gehts. frag nciht warum aber ist so einer eine idee wie ich das machen kann? |
Re: link klicken im twebbrowser simulieren?
Hallo!
Habe schnell ein Beispiel geschrieben, wie man's machen koennte.
Delphi-Quellcode:
uses
MSHTML; function WB_ClickLink(WB: TWebbrowser; const LinkText: string): Boolean; var HTMLDocument2: IHTMLDocument2; Element: IHTMLElement; I: Integer; begin HTMLDocument2 := WB.Document as IHTMLDocument2; for I := 0 to HTMLDocument2.Links.Length - 1 do begin Element := HTMLDocument2.Links.Item(I, 0) as IHTMLElement; if Element.GetAttribute('innerText', 0) = LinkText then begin Element.Click; Break; end; end; end; procedure TForm1.Button1Click(Sender: TObject); begin Webbrowser1.Navigate('www.google.ch'); repeat Application.ProcessMessages; until WebBrowser1.ReadyState >= READYSTATE_COMPLETE; WB_ClickLink(Webbrowser1,'Bilder'); end; |
Re: link klicken im twebbrowser simulieren?
der code klingt gut!
und geht bestens!!! DANKE!!!! |
Re: link klicken im twebbrowser simulieren?
|
Re: link klicken im twebbrowser simulieren?
Nochmal das Thema ausgrab....
Ich find die Lösung ja schon 1a, allerdings kann ich die so bei mir irgendwie nicht anwenden da alle Hyperlinks auch noch so ein Aufzählungszeichen haben. Wenn ich nun einfach den Text des Hyperlinks kopiere kommt in Delphi ein ? sieht also so aus: ?Meine Daten also hab ich mir gedacht, gut... dann gehste mal in den Quelltext und kopierst es da... folgendes kam raus: ◊Meine Daten das funktioniert aber leider auch nicht... auch ohne nbsp geht es nicht... das &loz ist dieses aufzählzeichen. hat einer ne Idee wie ich sonst diesen Hyperlink "klicken" könnte?? also es ist immer der gleiche Link also von daher könnte man dannach filter... Ich danke euch für eure Hilfe MFG Andre |
Re: link klicken im twebbrowser simulieren?
Hallo Andre,
ich hoffe du konntest dein Problem lösen.
Delphi-Quellcode:
Freundliche Grüße
function WB_ClickLink(WB: TWebbrowser; const LinkText: string): Boolean;
var HTMLDocument2: IHTMLDocument2; Element: IHTMLElement; I: Integer; begin HTMLDocument2 := WB.Document as IHTMLDocument2; for I := 0 to HTMLDocument2.Links.Length - 1 do begin Element := HTMLDocument2.Links.Item(I, 0) as IHTMLElement; if {Masks.}MatchesMask(Element.innerText, LinkText) then begin Result := True; Element.Click; Exit; end; end; Result := False; end; |
Re: link klicken im twebbrowser simulieren?
Diese routine ist super und funktioniert auch.
Allerdings liest die nur sichtbare text links aus. Ist es auch möglich unsichtbare bzw. Grafiklinks auszulesen? Oder einfach eine Möglichkeit wirklich alle links der seite auszulesen, den rest kann ich dann im programm aussortieren. |
Re: link klicken im twebbrowser simulieren?
Du könntest den Quelltext nach Link-Tags mit RegExepressions parsen und dann alle Links auflisten und den raussuchen, den du brauchst.
Hier nochmal der Link zur Komponente. Die macht genau das, was du willst. ![]() |
Re: link klicken im twebbrowser simulieren?
ok, das würde sicher funktionieren. Aber wie klicke ich den link dann ? Es ist wichtig das es ein echter klick ist und nicht einfach ein link der in navigate2 aufgerufen wird.
|
Re: link klicken im twebbrowser simulieren?
Meinst du
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:12 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 by Thomas Breitkreuz