Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   TEdgeBrowser - Möglichkeit, das inspect window per code zu steuern? (https://www.delphipraxis.net/214725-tedgebrowser-moeglichkeit-das-inspect-window-per-code-zu-steuern.html)

softtouch 28. Feb 2024 08:46

TEdgeBrowser - Möglichkeit, das inspect window per code zu steuern?
 
Gibt es eine Möglichkeit, das inspect window (rechts auf ein Element klicken, dann "inspect" auswählen) per code zu steuern?

Es geht mir darum, den XPath eines Elements zu bekommen, ohne die right-click -> inspect -> right-click -> copy -> XPath Geschichte vom Enduser machen zu lassen, da es für einige Enduser unverständlich ist.
Ich kann ja einfach einen normalen Klick auf ein Element abfangen, und kann auch das inspect window öffnen, kein Problem, aber ich habe bisher keine Möglichkeit gefunden, die obigen steps per code auszuführen, sodass also ein normaler Klick auf ein Element den XPath zurückgibt.
Geht das überhaupt oder denke ich da zu weit? Oder gibt es vielleicht sogar eine andere Möglichkeit, den XPath zu bekommen?

paule32.jk 22. Mär 2024 16:30

AW: TEdgeBrowser - Möglichkeit, das inspect window per code zu steuern?
 
für Mozilla FireFox und Thunderbird gibt es quell-offenen Source-Code.
Damit kannst Du das Verhalten eines Browsers studieren.

Allerdings ist der Bootstrap ein klein wenig tricky.

Ansonsten könntest Du Dir mal Electron anschauen.
Das ist auch ein WebBrowser, der per JavaScript so manche Dinge machen kann,
was ein normaler Browser nicht kann.

Der liegt zwar nicht direkt offen als QuellCode bei und ist ein wenig overblowed.
Es gibt verschiedene Clones/Forks von diesen - such doch mal auf github.com danach.

Wenn mich nicht alles täuscht wurde damit das Microsoft Visual Code IDE entwichelt und
programmiert (mal im Kaffee-Sats zu stöchern).

gubbe 24. Mär 2024 10:24

AW: TEdgeBrowser - Möglichkeit, das inspect window per code zu steuern?
 
Ich kenne keinen direkten Weg, diese Funktion aufzurufen.

Du könntest das Devtools-Protocol ansprechen, aber leider ist die Funktion nicht im Protokoll, sondern im Frontend der Devtools umgesetzt.

Der Quellcode der Funktion ist hier zu finden:

https://github.com/chromium/chromium...OMPath.js#L242

Du könntest versuchen, es ganz ohne die Devtools zu lösen und das Script nach dem Laden der Seite auszuführen. Auf den ersten Blick muß oben noch ein "Elements = {}" ergänzt werden, damit es keine Fehler gibt.
Mit einem weiteren Script, könnte der Klick auf ein beliebiges HTML-Element abgefangen werden, um dann mit diesem als Parameter die Funktion "Elements.DOMPath.xPath" aufzurufen. Das Ergebnis muss dann natürlich noch an Delphi übermittelt werden.

Eine fertige Lösung habe ich hier nicht, aber das wäre mein erster Ansatz.

Ansonsten hätte ich noch den Tip, es mit Playwright zu probieren. Das ist eine Library von Microsoft für Browsertests. Dort ist diese Funktion soweit ich weiß eingebaut oder zumindest als Erweiterung verfügbar. Je nachdem, was Du vorhast, ist das vielleicht auch ein geeignetes Tool für die Gesamtaufgabe.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:08 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz