AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein TWebBrowser: Text suchen und click simulieren
Thema durchsuchen
Ansicht
Themen-Optionen

TWebBrowser: Text suchen und click simulieren

Ein Thema von mexx2k4k · begonnen am 25. Feb 2009 · letzter Beitrag vom 26. Feb 2009
Antwort Antwort
mexx2k4k

Registriert seit: 6. Okt 2007
6 Beiträge
 
#1

TWebBrowser: Text suchen und click simulieren

  Alt 25. Feb 2009, 13:50
Ich habe folgendes Problem:

Ich lade eine Seite im TWebBrowser (https://email.t-online.de/), komme bis zum Login, logge mich ein und bin dann in der Übersicht, in welcher ich normal E-Mails anklicken und öffnen kann.
Der nächste Schritt wäre, dass ich eine E-Mail per Betreff suche und anklicke...
Allerdings ist die komplette Seite, bis auf das Grundgerüst, dynamisch per Javascript geladen, was bedeutet, dass der reine HTML-Quellcode so ausschaut:

Delphi-Quellcode:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
  <head>
    <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
    <title>T-Online eMail</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
    <link rel="SHORTCUT ICON" href="/favicon.ico"/>
    <script language="JavaScript" type="text/javascript" src="V0-2-9/lib/jquery.js"></script>
    <script language="JavaScript" type="text/javascript" src="V0-2-9/lib/swfobject.js"></script>

    <script language="JavaScript" type="text/javascript" src="V0-2-9/lib/rca-core.prototypes.js"></script>
    <script language="JavaScript" type="text/javascript" src="V0-2-9/lib/rca-core.js"></script>
    <script language="JavaScript" type="text/javascript" src="V0-2-9/lib/jquery.bubble.js"></script>
    <script language="JavaScript" type="text/javascript" src="V0-2-9/lib/jquery.datepicker.js"></script>
    <script language="JavaScript" type="text/javascript" src="V0-2-9/lib/jquery.cookie.js"></script>
    <script language="JavaScript" type="text/javascript" src="V0-2-9/lib/jquery.effects.js"></script>

    <script language="JavaScript" type="text/javascript" src="V0-2-9/lib/jquery.autocomplete.js"></script>
    <script language="JavaScript" type="text/javascript" src="V0-2-9/lib/rca-core.base.js"></script>
    <script language="JavaScript" type="text/javascript" src="V0-2-9/res/rte/tiny_mce.js"></script>
    <script language="JavaScript" type="text/javascript">
      $(document).ready(
        function () {
          $N.setRcaVersion('V0-2-9');
          $N.setRcaMandant('4901');
        }

      );
    </script>

<script language="JavaScript" type="text/javascript">
$(document).ready(function () {
  $N.bootOptions = {}
;
  $N.bootOptions["packagePreload"] = "package.full.preload";
  $N.bootOptions["packageFinalize"] = "";
  $N.bootOptions["bootScript"] = "boot\/full.js";
  $N.bootOptions["initScript"] = "boot.ngcs.js";
  $N.bootOptions["service"] = "full";
  $N.bootOptions["caller"] = "";
});
</script>
    <script language="JavaScript" type="text/javascript">
      $(document).ready(
        function () {
          if( $N.Browser.is('msie >= 7 || firefox >= 2 || chrome') || (document.location.href.search('ibvc=1') != -1)) {
            // redirect to flash hint if version check fails..
            if( swfobject.getFlashPlayerVersion().major < 9 && document.location.href.search('imfl=1') == -1 && document.cookie.search('imfl=1') == -1 )
              document.location.replace('browser/index_flash.html?ibvc=' + (document.location.href.search('ibvc=1') ? '1' : '0'));

            $('body').empty();
            $N.loadJs( $N.bootOptions['initScript'] );
          }

          else {
            document.location.replace('browser/index_browser.html');
          }

        }
      );
    </script>

  </head>
  <body>
    

Um die Anwendung nutzen zu k&ouml;nnen, muss JavaScript in Ihrem Browser aktiviert sein. Bitte pr&uuml;fen Sie, ob JavaScript aktiviert ist und laden Sie anschlie&szlig;end die Seite neu.</p>
  </body>
</html>

Der Content auf den ich zugreifen will, wird in Zeile 40 - 57 dynamisch geladen.
Welche Möglichkeit gibt es nun an dynamisch erzeugten Text zu kommen, am besten dessen Mausposition auszulesen um einen Click zu simulieren?

Wie man die Mausposition setzt und anschließend den Click ausführt, weiß ich... es geht nur um die Suche von Text und dessen Position.

Ich wäre euch sehr dankbar, wenn ihr eine Möglichkeit wisst und mir diese mitteilen könntet.
  Mit Zitat antworten Zitat
Larsi

Registriert seit: 10. Feb 2007
2.262 Beiträge
 
Delphi 2007 Professional
 
#2

Re: TWebBrowser: Text suchen und click simulieren

  Alt 25. Feb 2009, 13:59
Wenn es um das Abrufen von Mails geht würde ich Pop benutzen.
Ein Tag ohne Delphi ist ein verlorener Tag!

Homepage zu meinem neuen Programm: StreamZ
  Mit Zitat antworten Zitat
mexx2k4k

Registriert seit: 6. Okt 2007
6 Beiträge
 
#3

Re: TWebBrowser: Text suchen und click simulieren

  Alt 25. Feb 2009, 14:42

Spaßvogel
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#4

Re: TWebBrowser: Text suchen und click simulieren

  Alt 25. Feb 2009, 15:13
Hi!

Wird da ein Flash-"Film" geladen - also ist das wirklich HTML-Code der da geladen wird oder anders?
(Ich kenne T-Online-Mail nicht...)

Möchtest du das mit Delphi lösen?

Ciao, Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
mexx2k4k

Registriert seit: 6. Okt 2007
6 Beiträge
 
#5

Re: TWebBrowser: Text suchen und click simulieren

  Alt 25. Feb 2009, 15:21
Ich habe mit Delphi angefangen, mein Problem zu lösen, da ich mit Delphi die meiste Erfahrung habe... Allerdings würde ich auch andere Programmiersprachen verwenden, wenn es da leichter zu realisieren wäre...

Ich erkläre die Vorgehensweise von T-Online-Mail:

Wenn ich folgenden HTML-Code hätte:
[delphi]
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>

test

</body>
</html>
[delphi]

dann könnte ich problemlos auf den Link 'test' zugreifen...

Da T-Online jetzt aber so schlau ist und den Content, in dem sich auch interessante Links verstecken, dynamisch einliest, sieht das ganze so aus wie bei meinem ersten Beitrag und ich habe keine Möglichkeit auf Inhalt, z.B. solche Link zuzugreifen...

Ich hoffe das war einigermaßen verständlich
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#6

Re: TWebBrowser: Text suchen und click simulieren

  Alt 25. Feb 2009, 15:28
Hi!

Grundsätzlich ja, was mir aber noch nicht so ganz klar ist, ob da dynamisch HTML-Code generiert/eingelesen wird oder eine Flash-Bedien-Oberfläche.
Also wenn die Seite angezeigt wird (im normalen Browser), stehen dann die Betreffzeilen überhaupt im Quellcode drin?


Ciao, Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
mexx2k4k

Registriert seit: 6. Okt 2007
6 Beiträge
 
#7

Re: TWebBrowser: Text suchen und click simulieren

  Alt 25. Feb 2009, 15:33
Delphi-Quellcode:

<script language="JavaScript" type="text/javascript">
      $(document).ready(
        function () {
          if( $N.Browser.is('msie >= 7 || firefox >= 2 || chrome') || (document.location.href.search('ibvc=1') != -1)) {
            // redirect to flash hint if version check fails..
            if( swfobject.getFlashPlayerVersion().major < 9 && document.location.href.search('imfl=1') == -1 && document.cookie.search('imfl=1') == -1 )
              document.location.replace('browser/index_flash.html?ibvc=' + (document.location.href.search('ibvc=1') ? '1' : '0'));

            $('body').empty();
            $N.loadJs( $N.bootOptions['initScript'] );
          }

          else {
            document.location.replace('browser/index_browser.html');
          }

        }
      );
    </script>
Hiermit wird der eigentliche Content geladen. Es wird HTML-Quellcode generiert und hier eingelesen. Wenn ich in einem normalen Browser den Quellcode anzeigen lasse, ist dieser erzeugte Quellcode auch nicht zu sehen...
Allerdings schafft es das Addon 'Firebug' für Firefox es dieses Quellcode anzeigen zu lassen, was heißt, dass es irgendeine Möglichkeit geben muss.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.586 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: TWebBrowser: Text suchen und click simulieren

  Alt 25. Feb 2009, 15:57
Crossposts solltest du verlinken, dann kann man schauen ob da schon jemand das selbe geschrieben hat, bevor man sich die Mühe macht etwas zu schreiben, was vielleicht schon da steht...
http://www.delphi-forum.de/viewtopic.php?p=551167
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
mexx2k4k

Registriert seit: 6. Okt 2007
6 Beiträge
 
#9

Re: TWebBrowser: Text suchen und click simulieren

  Alt 25. Feb 2009, 16:09
Vielleicht hat einer von euch ja wenigstens eine Idee, was ich außer dem TWebBrowser noch verwenden könnte...
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#10

Re: TWebBrowser: Text suchen und click simulieren

  Alt 26. Feb 2009, 04:38
Zitat von mexx2k4k:
Vielleicht hat einer von euch ja wenigstens eine Idee, was ich außer dem TWebBrowser noch verwenden könnte...
An dem TWebBrowser kommst du nicht vorbei, weil du eine Komponente brauchst, die folgende Aufgaben kann:
* HTTP und HTTPS Transfers
* HTML Parser
* Webforms laden
* Javascript ausführen
Rein theoretisch könnte man das auch mit Mozilla Gecko (bekannt aus Firefox) erledigen, aber ich wüsste nicht wie man da von "Aussen" drankommt.
Dagegen sind alle Interfaces des IE gut dokumentiert und es gibt jede Menge Beispielcode dazu im Netz.
  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 15:16 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