AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi twebbrowser Bild per Dateiname suchen und anklicken
Thema durchsuchen
Ansicht
Themen-Optionen

twebbrowser Bild per Dateiname suchen und anklicken

Ein Thema von Blumi · begonnen am 13. Aug 2008 · letzter Beitrag vom 1. Jun 2009
Antwort Antwort
Benutzerbild von Blumi
Blumi

Registriert seit: 11. Jul 2005
Ort: Basel
96 Beiträge
 
Delphi 2005 Personal
 
#1

twebbrowser Bild per Dateiname suchen und anklicken

  Alt 13. Aug 2008, 00:55
Hi zusammen

Wie ist es möglich ein Element im TWebBrowser per Dateiname zu finden?

Und das es nachher möglich ist auch noch darauf zu klicken?
(Element.click)

Mfg.
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

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

Re: twebbrowser Bild per Dateiname suchen und anklicken

  Alt 13. Aug 2008, 05:45
Hallo Blumi,

Durchlaufe alle Bilder im TWebbrowser, ermittle die URL und überprüfe, ob die URL den Dateinamen enthält.

Beispiel:

Delphi-Quellcode:
uses
  MSHTML;

function WB_ClickImgByFileName(WB: TWebbrowser; ImgFileName: string): Boolean;
// Hinweis: Funktioniert nicht, falls sich das Bild in einem Frame befindet
var
  iImgCounter: Word;
  sImgHref: string;
  iHtmlDoc: IHtmlDocument2;
begin
  Result := False;
  iHtmlDoc := WB.Document as IHtmlDocument2;
  // Durchlaufe alle alle Bilder im TWebbrowser
  for iImgCounter := 0 to WB.OleObject.Document.Images.Length - 1 do
  begin
    // URL des Bildes[iImgCounter] ermitteln
    sImgHref := (iHtmlDoc.Images.Item(iImgCounter, 0) as IHTMLImgElement).Href;
    // Dateiname des Bildes[iImgCounter] überprüfen
    if Pos(ImgFileName, sImgHref) <> 0 then
    begin
      try
        // Click aufrufen
        ((iHtmlDoc.Images.Item(iImgCounter, 0) as IHTMLImgElement) as IHTMLElement).Click;
        Result := True;
      except
        // Ein Fehler ist aufgetreten
      end;
    end;
  end;
end;
Beispielaufruf:

ClickImgByFileName(Webbrowser1, meinbildxyz.gif);
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von Blumi
Blumi

Registriert seit: 11. Jul 2005
Ort: Basel
96 Beiträge
 
Delphi 2005 Personal
 
#3

Re: twebbrowser Bild per Dateiname suchen und anklicken

  Alt 13. Aug 2008, 12:25
Das Bild wird gar nicht erst gefunden.
Gibt es eine Möglichkeit auch in der Datei noch zu suchen, die per JavaScript eingebunden wird?
Das Bild wird per JavaScript eingebunden. Wenn ich aber im Browser auf Eigenschaften klicke wird mir der Dateiname ja trotzdem angezeigt klar.
Aber im Quelltext der HTML Datei ist dieses Bild dann trotzdem nicht vorhanden!

Wie geht man dort vor?

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

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

Re: twebbrowser Bild per Dateiname suchen und anklicken

  Alt 13. Aug 2008, 20:25
Zitat von Blumi:
Das Bild wird gar nicht erst gefunden.
Gibt es eine Möglichkeit auch in der Datei noch zu suchen, die per JavaScript eingebunden wird?
Das Bild wird per JavaScript eingebunden. Wenn ich aber im Browser auf Eigenschaften klicke wird mir der Dateiname ja trotzdem angezeigt klar.
Aber im Quelltext der HTML Datei ist dieses Bild dann trotzdem nicht vorhanden!
Diese Infos wären schon in der Anfangsfrage nützlich gewesen.
Handelt es sich um ein Captcha? Dann habe ich leider keine Lösung.
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von Blumi
Blumi

Registriert seit: 11. Jul 2005
Ort: Basel
96 Beiträge
 
Delphi 2005 Personal
 
#5

Re: twebbrowser Bild per Dateiname suchen und anklicken

  Alt 13. Aug 2008, 22:51
Zitat von toms:

Diese Infos wären schon in der Anfangsfrage nützlich gewesen.
Handelt es sich um ein Captcha? Dann habe ich leider keine Lösung.
Tut mir leid.
Aber es handelt sich nicht um ein Captcha!
Ich will ja auf das Bild klicken
  Mit Zitat antworten Zitat
marabu

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

Re: twebbrowser Bild per Dateiname suchen und anklicken

  Alt 14. Aug 2008, 06:58
Moin,

wenn der Dateiname des zu ladendend Image sich nur in JS-Code finden lässt, dann ist es wahrscheinlich effektiver den Image-Link über seine absolute oder relative Position im DOM zu lokalisieren, zu einem Zeitpunkt in dem das Image fest im DOM verankert ist. Absolut, wenn möglich. Relativ heißt, dass du ein benanntes Element in der Nähe (Parent, Sibling, ...) ausfindig machst, an dem du dich lang hangeln kannst. Wie du das Bild dann anklickst hat dir Tom ja schon gezeigt.

Grüße vom marabu
  Mit Zitat antworten Zitat
BBoy

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

Re: twebbrowser Bild per Dateiname suchen und anklicken

  Alt 1. Jun 2009, 17:43
Ist es möglich die Routine von toms so zu ändern das kein ie-fenster geöffnet wird, sondern die Seite im TWebBrowser angezeigt wird wenn geklickt wird?
Desweiteren müsste mein Programm nicht nach dem Dateinamen suchen sondern nach dem link der in href= steht, kann man die Routine dazu umschreiben?

ich sag schon mal ...danke für eure Hilfe.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.056 Beiträge
 
Delphi 12 Athens
 
#8

Re: twebbrowser Bild per Dateiname suchen und anklicken

  Alt 1. Jun 2009, 17:54
schau dir mal die Ereignisliste von TWebBrowser an, da gibt es Eines (ich glaub das fängt mit OnNew... an) für seite/Link soll in neuem Fenster geladen werden ... dieses fängst du n der Prozedur ab (entsprechenden Parameter setzen) und lädst die seite selber im TWebBrowser (die URL wird dir auch von der Prozedur geliefert)


so hatte ich das mal gemacht (k.A. ob es nicht doch irgendwo eine versteckte "nicht in neuem Fenster laden"-Option gibt)
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

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

Re: twebbrowser Bild per Dateiname suchen und anklicken

  Alt 1. Jun 2009, 17:57
Zitat von BBoy:
Desweiteren müsste mein Programm nicht nach dem Dateinamen suchen sondern nach dem link der in href= steht, kann man die Routine dazu umschreiben?
Das macht es doch

Delphi-Quellcode:
// URL des Bildes[iImgCounter] ermitteln
    sImgHref := (iHtmlDoc.Images.Item(iImgCounter, 0) as IHTMLImgElement).Href;
    // Dateiname des Bildes[iImgCounter] überprüfen
    if Pos(ImgFileName, sImgHref) <> 0 then
Thomas
  Mit Zitat antworten Zitat
BBoy

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

Re: twebbrowser Bild per Dateiname suchen und anklicken

  Alt 1. Jun 2009, 18:41
Nein, Die Routine sucht im Pfad zum Bild und nicht in dem Link der aufgerufen wird wenn man es anklickt. Habe simghref in einem Memo auflisten lassen, da wurden wir die imagepfade angezeigt und nicht die Links.

Edit:
in diesem code wird das angezeigt was in img src=" steht und nicht was in href="
Hier mal ein Beispiel wie der html text aussieht:

[url="zeigefoto.php?nr=32"][img]http://www.meineseite.de/bilder/foto32.jpg[/img][/url]
  Mit Zitat antworten Zitat
Antwort Antwort


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 00:38 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