Im Internet jumpen

  • Hallo Community.

    Ich habe wieder ein Problem wo ich nicht weiter komme.
    Mir fällt einfach nicht ein wie ich folgendes umsetzten kann.

    Ich möchte eine Internetseite öffnen dort nach einem bestimmten Wort suchen dann bis dahin springen/scrollen, sodass es auf dem Bildschirm sichtbar ist und dann den Mauszeiger genau auf die Stelle positionieren.

    Vielleicht kann mir einer helfen? Wäre sehr dankbar.

  • Kannst du bitte erörtern, was dein eigentliches Ziel ist? Den Mauszeiger nur auf einem Wort positionieren kann ja wenig (keinen) Sinn haben.

    Es gibt sehr viele Leute, die glauben. Aber aus Aberglauben.
    - Blaise Pascal

  • Zu _IE* ( IE gibt es eh nicht mehr lange und dann funktionieren höchstwahrscheinlich auch alle AutoIt-Funktionen mit _IE* nicht mehr) kann ich dir nicht sagen, aber mit Firefox ginge das z.B. so:

    AutoIt
    ShellExecute('https://autoit.de/thread/87173-im-internet-jumpen/?postID=702158#post702158') ; diesen Post in Firefox öffnen
    Sleep(3000) ; Wert evtl. anpassen
    ; WinActivate('Im Internet jumpen - Hilfe & Unterstützung - AutoIt.de - Das deutschsprachige Forum. - Mozilla Firefox') ; wenn der Tab bereits existiert
    WinActivate('[CLASS:MozillaWindowClass]')
    Local $sSearch = 'Suchbegriff'
    Sleep(2000) ; Wert evtl. anpassen
    Send('/' & $sSearch) ; / aktiviert die Schnellsuchleiste in Firefox

    https://support.mozilla.org/de/kb/Suchen-innerhalb-einer-Seite

    Zitat

    Suchen mit der Schnellsuchleiste

    Die Schnellsuchleiste ist zur schnellen Suche vorgesehen und wird nach wenigen Augenblicken wieder ausgeblendet. Um sie zu öffnen, drücken Sie die Taste / (Schrägstrich) und geben Sie sofort den Suchausdruck ein.

    Oder du machst es mit der WebDriver UDF - damit kannst du dann auch auf bereits geöffnete Tabs zugreifen und auch den Namen des Tabs zur Navigation verwenden.

    Einmal editiert, zuletzt von Bitnugger (1. November 2020 um 05:19)

  • Kannst du bitte erörtern, was dein eigentliches Ziel ist? Den Mauszeiger nur auf einem Wort positionieren kann ja wenig (keinen) Sinn haben.

    Ich habe eine Internetseite mit der ich arbeite und die ich hier nicht posten darf.

    Da ist es so, wenn man über bestimmte Begriffe mit der Maus geht, erscheint eine zusätzliche Information über den Begriff.
    Wenn ich allerdings die Seite zum auswerten nur mit $HTML = _IEDocReadHTML($oIE) auslese, stehen diese Informationen nicht drin.
    Sobald ich aber die Maus drüber bewege, dann wird der HTML Code eingebunden, warum auch immer.

    Zu _IE* ( IE gibt es eh nicht mehr lange und dann funktionieren höchstwahrscheinlich auch alle AutoIt-Funktionen mit _IE* nicht mehr) kann ich dir nicht sagen, aber mit Firefox ginge das z.B. so:

    AutoIt
    ShellExecute('https://autoit.de/thread/87173-im-internet-jumpen/?postID=702158#post702158') ; diesen Post in Firefox öffnen
    Sleep(3000) ; Wert evtl. anpassen
    ; WinActivate('Im Internet jumpen - Hilfe & Unterstützung - AutoIt.de - Das deutschsprachige Forum. - Mozilla Firefox') ; wenn der Tab bereits existiert
    WinActivate('[CLASS:MozillaWindowClass]')
    Local $sSearch = 'Suchbegriff'
    Sleep(2000) ; Wert evtl. anpassen
    Send('/' & $sSearch) ; / aktiviert die Schnellsuchleiste in Firefox

    https://support.mozilla.org/de/kb/Suchen-innerhalb-einer-Seite

    Oder du machst es mit der WebDriver UDF - damit kannst du dann auch auf bereits geöffnete Tabs zugreifen und auch den Namen des Tabs zur Navigation verwenden.

    deswegen bringt mir leider es nicht, wenn ich nur auf der Seite dahin springe...
    Gibt es da noch andere Möglichkeiten?

  • Ja das ist ärgerlich, heutzutage wird so viel über Skripte dynamisch nachgeladen, dass man kaum noch an alle Infos kommt wenn man "nur den Quellcode" hat.

    Im Prinzip ist der "richtige" Weg grundsätzlich NICHT im Browser irgendetwas per Maus anzuklicken, sondern so weit es geht nur Text zu verarbeiten bis man ans Ziel kommt. Hast du mal versucht die Webseite mit einem Textbasierten Browser zu öffnen? Das ist ggf. auch nicht super, aber vielleicht findet so ein Browser (der üblicherweise auch sehr schnell und leichtgewichtig ist) deinen Text auch ohne Mousehover (je nach nachlademethode und je nach Textbrowser).

    Da ich mich mit Webseiten usw. nicht auskenne kann ich nicht wirklich helfen. Die idee mit dem Textbrowser kam mir spontan, vielleicht ist die auch Unfug, Versuch macht Klug :)

    lg

    M

  • Mit dem Textbrowser geht's auch nicht.

    Gibt es denn eine Möglichkeit den Mauszeiger auf einen Text auf dem Bildschirm zu bewegen oder irgendwie die Bildschirmposition eines Textes auszulesen?

  • Mouseover wird meistens mit Javascript geladen (manchmal auch css). Wenn du die Webseite im Browser offen hast einfach mal einen rechtsklick auf das element machen, bei dem der Text erscheint und auf "Element untersuchen" klicken. Dort sollte dann so etwas erscheinen wie auf dem Screenshot.
    Dann musst du dort schauen und nach der ersten grauen Box mit "event", in der hierarchie hoch, suchen (In dem Screenshot steht dort auch oft flex). In dem Screenshot steht das z.B. ein paar Zeilen über dem markierten.

    Ich kenn die WebDriver UDF nicht, aber mit der JavaFX WebView (Java) kann man javascript code ausführen. Also den HTML-DOM durchlaufen, das Element herausfinden und das jeweilige Event auslösen, sollte möglich sein.

    Je nach webseite kannst du auch einfach den JavaScript Code des Events anschauen und herausfinden, wo der beim mouseover geladene Text herkommt und das nachbauen.

    Es gibt wie immer einige Möglichkeiten, die beste/einfachste hängt natürlich von der Webseite ab, die du bedienen möchtest, also schaust du am besten mal, wie der Text dort geladen wird.



    MfG Kanashius.

  • OK danke schon mal für den Hinweis.

    Allerdings habe ich gar keine Ahnung davon wo ich überhaupt anfangen sollte.
    Ich habe jetzt das Element untersucht.

    Wenn ich jetzt z.B. über [6] den Mauszeiger bewege, dann zeigt er in einem Sonder-Kästchen den Zusatztext an.
    Geh ich mit der Maus weg, ist der Text auch wieder ausgeblendet.
    Gibt es irgendwo ein Beispiel?

    Also ich bräuchte nur die Texte, die dort in den [] erscheinen.

    Spoiler anzeigen


    Am liebsten in einem 2D-Array.