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)