AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi link klicken im twebbrowser simulieren?
Thema durchsuchen
Ansicht
Themen-Optionen

link klicken im twebbrowser simulieren?

Ein Thema von jens76 · begonnen am 6. Apr 2005 · letzter Beitrag vom 23. Apr 2016
Antwort Antwort
Seite 1 von 2  1 2      
jens76

Registriert seit: 6. Apr 2005
3 Beiträge
 
#1

link klicken im twebbrowser simulieren?

  Alt 6. Apr 2005, 09:49
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?
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#2

Re: link klicken im twebbrowser simulieren?

  Alt 6. Apr 2005, 11:02
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;
Thomas
  Mit Zitat antworten Zitat
jens76

Registriert seit: 6. Apr 2005
3 Beiträge
 
#3

Re: link klicken im twebbrowser simulieren?

  Alt 6. Apr 2005, 11:22
der code klingt gut!

und geht bestens!!!

DANKE!!!!
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#4

Re: link klicken im twebbrowser simulieren?

  Alt 6. Apr 2005, 11:26
Hier im Forum suchenMSHTML importieren
Thomas
  Mit Zitat antworten Zitat
tomate007

Registriert seit: 1. Apr 2007
46 Beiträge
 
#5

Re: link klicken im twebbrowser simulieren?

  Alt 11. Dez 2007, 10:10
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
  Mit Zitat antworten Zitat
marabu

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

Re: link klicken im twebbrowser simulieren?

  Alt 10. Feb 2008, 09:05
Hallo Andre,

ich hoffe du konntest dein Problem lösen.

Delphi-Quellcode:
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;
Freundliche Grüße
  Mit Zitat antworten Zitat
BBoy

Registriert seit: 17. Jan 2007
418 Beiträge
 
Delphi 10 Seattle Professional
 
#7

Re: link klicken im twebbrowser simulieren?

  Alt 1. Jun 2009, 12:09
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.
  Mit Zitat antworten Zitat
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#8

Re: link klicken im twebbrowser simulieren?

  Alt 1. Jun 2009, 12:23
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.

http://regexpstudio.com/TRegExpr/TRegExpr.html
  Mit Zitat antworten Zitat
BBoy

Registriert seit: 17. Jan 2007
418 Beiträge
 
Delphi 10 Seattle Professional
 
#9

Re: link klicken im twebbrowser simulieren?

  Alt 1. Jun 2009, 12:35
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.
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#10

Re: link klicken im twebbrowser simulieren?

  Alt 1. Jun 2009, 12:50
Meinst du so?
Thomas
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 21:33 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