Website wird nicht gefunden

  • Hallo Gemeinde,

    ich muss eine Tabelle unserer KVM-Switche auslesen. Leider geht das nicht via SSH oder REST, etc.. D. h. mein Programm startet den Firefox, öffnet die LoginSeite und sendet die Logindaten.
    Leider geht das nicht da er die Seite nicht findet. Laut Logfile: Logwrite(379,...).
    Alle Versuche das via KI zu fixen funktionieren nicht. Findet jemand den Fehler oder hat eine Idee wie ich das so hinbekomme, dass die Loginseite auf jeden Fall gefunden wird?
    Der Name der Website Login — Mozilla Firefox wurde durch Weblist verifiziert...


  • Noch eine Anmerkung:

    Code
    	Local $bLoginWindow = WinWaitActive("Login — Mozilla Firefox", "", 20)
    	If Not $bLoginWindow Then
    		LogWrite(379, "ERROR: Login-Fenster bei " & $sURL & " nicht gefunden!")
    		KillFirefoxInstance($sTempProfile)
    		DirRemove($sTempProfile, 1)
    		Return SetError(1, 0, "")
    	EndIf

    Der Wert, der von WinWaitActive() in $bLoginWindow abgelegt wird, ist kein boolescher Wert ($b...) sondern ein Handle ($h...). Wenn das Fenster früh genug aktiv wurde, steht deshalb in dieser Variablen der später von Dir als $hWnd genutzte Wert und das Fenster ist aktiv.

    Der folgende Code ist damit überflüssig:

  • Hallo Velted,


    zunächst vielen lieben Dank für deine Antwort. Ich bin insofern ein kleines Stück weiter, als das beim vorigen Code einfach

    mal das Winactivate gefehlt hat und die Loginseite somit nicht fokussiert wurde. Der Code ist jetzt wie folgt:

    Es ist dennoch zum Haare raufen (so denn man welche hat :D), dass immer im ersten Durchgang (die Func wird ja per Schleife 4 mal aufgerufen) der Login nicht funktioniert, da die Seite
    gem. Zeile 14 nicht gefunden wird, obwohl Winactivate die Seite fokussiert. Dennoch ist die Variable $bLoginWindow 0. Seltsamer Weise funktionieren die Aufrufe 2 bis 4 tadellos.
    Die Zeile Opt("WinTitleMatchMode", 2) habe ich an den Anfang des Proggis gestellt.
    Im Anhang ist die Website abgebildet...

  • hipfzwirgel warum nutzt du dazu nicht die Webdriver Automatisierung.

    Die gibt es für Edge/Google Chrome/ Firefox und ggf. andere und im Forum sollte es auch diverse Beispiele geben.

    Hier mal ein Beispiel per Webdriver für den GoogleChrome Browser und was man dafür alles braucht.

    gmmg
    5. September 2024 um 13:03

    Gruß gmmg

    Einmal editiert, zuletzt von gmmg (7. Mai 2026 um 13:30)

  • Hallo gmmg,

    ich habe das schon einmal versucht. Aber leider scheiterte ich schon daran, das ich den Webdriver nicht richtig zum Einsatz bringen konnte. Mal
    fehlte eine Funktion in der UDF. Dann war es eine veraltete oder falsche Version der UDF usw. Google Chrome kann ich aus Policy-Gründen leider nicht nutzen.

    Es treibt mich in den Wahnsinn, das der Task gestern das Programm alle 30 min. startete und es sauber durchlief. Heute findet das Proggi wieder die Login-Seite nicht.

    Wie kann es sein, dass die Webseite angezeigt wird, geladen ist, per Winlist ausgelesen werden kann aber Winactivate das Fenster nicht findet:?::?::?:

    Das kann doch nicht wahr sein....:cursing:

  • welche Browser kannst du denn nutzen?

    nur Firefox oder auch den Edge?

    Beispiel für Firefox:

    2 Mal editiert, zuletzt von gmmg (8. Mai 2026 um 14:25)

  • du benötigst dazu den aktuellen Geckodriver (https://github.com/mozilla/geckodriver/releases)

    und einige au3 Dateien für das Webdriver Projekt.

    Releases · Danp2/au3WebDriver
    Web Driver UDF for AutoIt. Contribute to Danp2/au3WebDriver development by creating an account on GitHub.
    github.com


    und unter https://github.com/Danp2/au3WebDriver die preconditions:

    schau dir auch das utoit-webdriver-boilerplate Projekt von Sven dazu an:

    GitHub - sven-seyfert/autoit-webdriver-boilerplate: The project "autoit-webdriver-boilerplate" can be used as quick entry point for the awesome "au3WebDriver" project by @Danp2 (and @mlipok). The intention is, give people a easy start with WebDriver for…
    The project "autoit-webdriver-boilerplate" can be used as quick entry point for the awesome "au3WebDriver" project by @Danp2 (and @mlipok).…
    github.com

    Einmal editiert, zuletzt von gmmg (8. Mai 2026 um 15:05)

  • Moin,

    nach dem Bild in Beitrag #4 gehe ich davon aus, dass Du das kleine Login-Fenster unten rechts ansprechen willst. Wenn die "Window Info" das als eigenständiges Fenster mir eigener fester Klasse erkennt, kannst Du die Fensterklasse als zusätzliches Auswahlkriterium nutzen:

    Code
    $hWnd = WinWait("[TITLE:Login; CLASS:FensterKlasse]", , 10)
    If $hwnd = 0 Then Fehler!!!
    WinActivate($hWnd)
    If Not WinWaitActive($hWnd), , 5) Then Fehler!!!
    ; Gefunden!
  • Hallo gmmg und Velted,

    allerherzlichsten Dank für eure Beiträge. :klatschen:

    @ gmmg: ich werde mir zu gegebener Zeit das mit dem Webdriver nochmals anschauen. Werde ich ja doch öfter benötigen ;)
    zur Zeit benutze ich den Firefox. MS Edge wäre auch erlaubt. Verstehe ich das richtig? Wenn ich den o.g. Geckodriver installiere und die beiden UDF's in den Include-Ordner ablege,
    dann sollte das funktionieren?

    @ Velted: Einer der größten Fehler war, dass der Task-Scheduler das Programm als Admin startete. Dadurch war das UserProfil vom eigentlichen User nicht "rechtzeitig" geladen worden.
    Darum liefen die weiteren Durchgänge dann durch, da da dann das Profil da war...:Face:Es hatte also nichts mit dem Code direkt zu tun.
    Nachdem ich den Task angepasst hatte lief das Proggi wie es sollte :thumbup:

  • hipfzwirgel ja, wenn du alle benötigten Webdriver Dateinen so ablegst geht das. Wenn die Exe kompiliert ist, brauchst du nur noch deine Exe Datei und die Webdriver exe (gekko.exe/ chromdriver.exe oder die Edgedriver.exe)

  • Hallo gmmg,

    das ist genau das was ich meinte:

    Hallo gmmg,

    ich habe das schon einmal versucht. Aber leider scheiterte ich schon daran, das ich den Webdriver nicht richtig zum Einsatz bringen konnte. Mal
    fehlte eine Funktion in der UDF. Dann war es eine veraltete oder falsche Version der UDF usw. Google Chrome kann ich aus Policy-Gründen leider nicht nutzen.


    auch bei den Links die du aufgeführt hast, fehlen in den Paketen z.B. die JSON.UDF, usw.. Nach Downloadlinks sucht man sich (insbesondere in den Forenbeiträgen) den Wolf. Die Sourcen bei gitlab als Zip herunter zu laden geht zwar aber eine Anleitung welche Dateien man aus dem Wust an Files eigentlich benötigt: Fehlanzeige! Ebenso ist eine Step by Step Anleitung (mit angaben expliziter Downloadlinks) für die Einrichtung nirgends zu finden. In einem der Forenbeiträge ist sogar die Rede davon, dass die JSON UDF und Webhttp UDF ABSICHTLICH nicht im Paket mit drin sind und eine Angabe wo sie stattdessen zu finden sind fehlt. Warum sind die Dateien dann preconditions? Bestenfalls führen die Verlinkungen zu jeweils anderen Forenbeiträgen die auch keine auffindbaren Downloadlinks enthalten. Ebenso fehlen in den Beiträgen (zumindest für mich nicht ersichtlich) Versionsangaben welche der gefühlt hunderten erhältlichen JSON UDFs diejenige welche ist, die für den jeweiligen Use-Case die richtige ist.

    Fazit: es scheint bewusst gewollt zu sein, dass die Webdrivergeschichte so wenig wie möglich Leute benutzen können.

    ==> Einfach mal EIN Downloadlink, der alle nötigen Resourcen gebündelt anbietet, wäre cool :thumbup::thumbup::thumbup:

  • OK, genug gemosert 😉
    Hast Du Dir im engl. Wiki den Artikel für WebDriver schon angesehen? https://www.autoitscript.com/wiki/WebDriver
    Da haben wir die wesentlichen Infos inkl. Links und Beispielen für Einsteiger zusammengefasst.
    Sollte was nicht passen/ stimmen, dann kann ich das anpassen/korrigieren.

  • Hallo Zusammen,

    basierend auf der "AutoIt CDP UDF", gleich mal ein Autologin Beispiel.


    Gruß gmmg

  • Hba es mal so gelöst, um die Cookies vorher zu löschen.