Autor Beitrag
mexx2k
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 60



BeitragVerfasst: Mi 25.02.09 13:20 
Ich habe folgendes Problem:

Ich lade eine Seite im TWebBrowser (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:

ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
<!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>
    <p>Um die Anwendung nutzen zu können, muss JavaScript in Ihrem Browser aktiviert sein. Bitte prüfen Sie, ob JavaScript aktiviert ist und laden Sie anschließ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.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19274
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 25.02.09 16:55 
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...
www.delphipraxis.net...lick+simulieren.html
In diesem Fall gibt es drüben ja schon ein paar Antworten zum Beispiel.
mexx2k Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 60



BeitragVerfasst: Mi 25.02.09 17:10 
Vielleicht fällt einem von euch ja eine Komponente ein, welche eine gute Alternative zu TWebBrowser wäre.
Danke
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19274
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 25.02.09 17:15 
Da fallen mir nur die Mozilla Komponente des Firefox und der EmbeddedWB ein. Ob die den entsprechenden Quelltext anzeigen, weiß ich nicht.
Andere Komponenten wie Indy können jedenfalls gar kein JavaScript.

Eigentlich dachte ich aber solche Quelltextänderungen würde man auch im TWebBrowser sehen. :gruebel:
Fertig geladen ist die Seite aber sicher schon? Also benutzt du da das richtige Event?
mexx2k Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 60



BeitragVerfasst: Mi 25.02.09 17:20 
onDocumentComplete...

Es gibt eine Firefox-komponente ?
Das wäre sehr interessant?
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19274
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 25.02.09 17:29 
user profile iconmexx2k hat folgendes geschrieben Zum zitierten Posting springen:
onDocumentComplete...
Solange es keine Frames gibt reicht das ja. Wenn eine Seite Frames benutzt, wird es auch jedesmal aufgerufen, wenn einer der Frames fertig geladen ist.

user profile iconmexx2k hat folgendes geschrieben Zum zitierten Posting springen:
Es gibt eine Firefox-komponente ?
Das wäre sehr interessant?

delphi.mozdev.org/ar...ard_with_delphi.html