Vom Programm aus auf Webseitenelemente zugreifen
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo!
Da mein TWebBrowser (in Delphi 2010) mit den zahlreichen Scripten der Seite www.trotto.de/index.htm nicht klarkommt (Beispiel für Fehlermeldung im Anhang), lade ich die Seite in einen externen Browser. Wie greife ich aus meinem Programm auf Checkboxen und Button der Seite zu? Für die entscheidenden Checkboxen muss ein bevorstehndes Rennen ausgewählt werden. Wie komme ich z. B. an die Handles der Checkboxen? Gruß Rued P.S.: Silent = true für TWebBrowser ist keine Lösung, da die Scripte ausgeführt werden müssen. |
AW: Vom Programm aus auf Webseitenelemente zugreifen
Der IE basierte Webview steckt standardmäßig auf dem Funktionsniveau von IE 6 oder 7 fest. Du kannst ihm per Registry-Eintrag aber sagen, dass für dein Programm ein höheres Niveau gelten soll:
Code:
Der eine ist für 32 Bit, der andere für 64 Bit.
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION]
"programmname.exe"=dword:00002af8 [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION] "programmname.exe"=dword:00002af8 Alternativ kannst du schauen ob du den Edge(Chromium) basierten WebView2 mit folgender Komponenten nurtzen kannst: https://github.com/salvadordf/WebView4Delphi Oder du automatisierst den Zugriff ganz anders, mit einem Tool wie Selenium? Die Frage ist aber auch: Hat die Seite "Abwehrmaßnamen" und lassen die Nutzungsbedingungen automatisierten Zugriff zu? |
AW: Vom Programm aus auf Webseitenelemente zugreifen
Der TWebBrowser lässt sich auch auf Edge umstellen,
bzw. direkt TEdgeBrowser. TWebBrowser.SelectedEngine = EdgeOnly oder EdgeIfAvailable |
AW: Vom Programm aus auf Webseitenelemente zugreifen
Zitat:
|
AW: Vom Programm aus auf Webseitenelemente zugreifen
@omnibrain:
Aktualisierung zu Punkt 2: Die WebView2Loader.dll habe ich zu meinen dlls geschoben und das Post-Build-Ereignis im Projekt hinzugefügt. Jetzt fehlt mir noch die Komponente. |
AW: Vom Programm aus auf Webseitenelemente zugreifen
Das mit der Registry hat nichts mit Delphi zu tun.
Es macht Windows innerhalb der ActiveX-Komponente, welche Delphi hier nutzt. Ohhh, das ist natürlich etwas unpraktisch. :oops: Nja, erstmal kannst dir ja im TWebBrowser anzeigen lassen, was du eigentlich aktuell hast, bzw. es von Seiten des Delphi-Codes auslesen. JavaScript: navigator.appName , navigator.appVersion und navigator.userAgent oder HTML-Conditionals:
HTML-Code:
<!--[if IE 6]> IE6 <![endif]-->
<!--[if IE 7]> IE7 <![endif]--> <!--[if IE 8]> IE8 <![endif]--> ... |
AW: Vom Programm aus auf Webseitenelemente zugreifen
Zitat:
|
AW: Vom Programm aus auf Webseitenelemente zugreifen
Dafür kann man doch auch eine eigene, lokale, HTML-Datei nehmen, es geht doch nur darum herauszufinden, welche IE-Version auf dem eigenen Rechner ist bzw. welche IE-Version vom TWebBrowser im Delphi-2010-Programm emuliert wird. (Und mit der lokalen HTML-Datei kann man dann ggfls. auch prüfen, ob Änderungen in der Registry beim TWebBrowser "ankommen".)
Wenn man das weiß, kann man prüfen, welche IE-Version die Webseite (mindestens) benötigt und dann (mit ein bisserl Glück) für das eigene Programm den erforderlichen Wert in der Registry eintragen. Wird von der WebSeite eine höhere IE-Version benötigt, als man auf dem Rechner hat, wird's halt vergebliche Liebesmüh. Weitere Werte für die Registry, die eventuell zum Erfolg führen könnten: Internet Feature Controls (B..C) |
AW: Vom Programm aus auf Webseitenelemente zugreifen
Zitat:
Zitat:
|
AW: Vom Programm aus auf Webseitenelemente zugreifen
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:48 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