Beiträge von Faultier_1982

    Wenn Du gemäß Anleitung nach den Webdrivern suchst, findest Du die richtigen: z.B. Geckodriver


    Und wenn Du dann das hier gefunden hast, liegst Du richtig:

    Ja... dann habe ich da bis jetzt alles richtig gemacht vielen Dank...



    Was das Piepen angeht.... Ich habe mal ein Beispiel-Code erstellt, in dem bei mir das Piepen vorkommt.... Vielleicht erkennt jemand das Problem

    Wenn ich diese Zeile deaktivieren ist das Piepen zwar weg aber für meinen Code natürlich schlecht.... :D



    Gruß Faultier

    Hallo...

    Ich würde mich mal gerne mit dem Befehl "ControlClick" befassen, vielleicht finde ich mal einen Einsatzbereich dafür.... Muss eigentlich das Fenster Aktiv im Vordergrund sein, dass der Befehl funktioniert? Ich habe mit Autoit Windor Info mal was zum klicken gesucht, weiß aber nicht, wo ich welche Werte genau eingeben muss.... Habe schon einiges versucht aber nichts hat bis jetzt funktionieren wollen.


    Code
    ControlClick ( "Deutsche Wirtschafts Nachrichten - deutsche-wirtschafts-nachrichten.de - Internet Explorer", "", "[CLASS:DirectUIHWND; INSTANCE:3]", "left" , 1 , 104 , 12 )

    Hier die Infos aus Autoit Windows Info

    Gruß Faultier

    Also anstatt die Mühe zu investieren, einen Watchdog zu programmieren würde ich lieber einfach das eigentliche Programm überarbeiten und Fehlerfälle abfangen, dann haste diese Sorgen auch nicht mehr.

    Mir kommts so vor als ob du dein 1. Skript ziemlich schlampig programmiert hast. Wenn du uns es zeigst können wir es uns ja mal ansehen und mit ein paar Hinweisen, wo es sich aufhängt dir helfen?

    Bis jetzt hat sich mein Programm noch nicht aufgehängt.... aber ich wollte einfach für die den Fall der Fälle gewappnet sein, weil das Programm schlussendlich auf einem Home-Server laufen soll, das ich nicht immer im Blick haben kann/will.... reine Vorsichtsmaßnahme..... Zusätzlich wollte ich meinen Server auf einmal am Tag neu starten lassen und hoffe so, dass alles so stabil wie möglich funktioniert.... Ist mein Denkansatz falsch?

    Vielen Dank für eure Vorschläge. Eigentlich möchte ich eine Autoit-EXE dauerhaft laufen lassen. Aber weil es immer mal wieder vorkommen kann, dass ein Programm sich aufhängt oder sich nach einem Fehler selber schließt, würde ich gerne regelmäßig prüfen, ob das Programm noch läuft, und wenn es nicht läuft neu starten. Zusätzlich möchte ich das Programm nach einer gewissen Zeit einfach schließen und frisch starten, weil glaube/hoffe, dass so die Chance größer ist, dass das Programm dauerhaft zuverlässig läuft. Ob das alles auch so funktioniert wich ich es mit erhoffe weiß ich natürlich noch nicht.... :)

    Hallo...

    Ich habe mit Autoit ein kleines Programm geschrieben und als .exe formatiert. Dieses Programm läuft auch wunderbar.

    Nun würde ich gerne ein zweites Autoit-Programm schreiben, mit dem ich prüfen kann, ob das erste Programm läuft und falls es läuft auch beenden kann.

    Ich habe mal versucht es mit "WinList()" überhaupt zu finden, aber leider wird es nicht eindeutig erkennbar und identifizierbar, wenn es damit überhaupt zu finden ist.

    Was hättet ihr mir für Vorschläge das umzusetzen?

    Gruß Faultier

    Hallo...

    kann ich eigentlich alle Dateien, außer die Cromdriver.exe, die ich zu beginn für den Chrome-Browser runter laden musste auch für den Firefox-Browser nutzen oder brauche ich da ein anderes Dateien.

    Ich habe die geckodriver.exe Version 71.0.0.7222 ist das die aktuelle? Mein Firefox hat die Version 77.0.1 (64Bit). ich vermute, dass ich nicht die richtige Datei gefunden habe... wo finde ich denn die richtige Datei?

    Gruß

    Hallo...

    Wie würden hier denn die Anderungen aussehen, wenn man auch mit Firefox die Einstellungen im Browser speichern will?


    Code
    Func SetupGecko()
    _WD_Option('Driver', 'geckodriver.exe')
    _WD_Option('Port', 4444)
    _WD_Option('DriverParams', '--log trace')
    $sDesiredCapabilities = '{"desiredCapabilities":{"javascriptEnabled":true,"nativeEvents":true,"acceptInsecureCerts":true}}'
    EndFunc


    Und woher kommt das ständige Piepen, während Firefox aufgeführt wird? kann es sein, dass Firefox das macht, wenn man Elemente im Code zum klicken hat, die im Browser nicht verfügbar sind? irgendwie extrem nervig.


    Gruß Faultier

    Hallo...

    der "Switch" Befehl geht mir ein bisschen auf die Nerven, weil er nicht nur das Tab im Chrome nach vorne holt, sondern er es komplett nach vorne holt. Wenn ich also gerade im Firefox oder Excel etwas anderes arbeiten will, ploppt mir der "Switch" Befehl immer in meine Arbeit, indem er das Chrome nach vorne auf den Desktop holt... gibt es da noch eine Möglichkeit um das zu verhindern??

    so habe ich es versucht, dass ich den "Switch" Befehl gar nicht verwenden muss, hat aber nicht geklappt.

    Hatte gehofft, so nicht Switchen zu müssen und das entsprechende Tab direkt ansteuern zu können, ohne ihn in den Vordergrund holen zu müssen



    Wenn ich das mit Firefox mal versuchen will, was benötige ich dafür und wo finde ich das? Soll ich dann dafür ein neues Thema auf machen oder bekomme ich dann wieder den Hinweis, dass ich meine Themen der letzten Jahre anschauen soll?


    Gruß

    wd_loadwait scheint tatsächlich manchmal nicht auszureichen. Da gebe ich dann noch ein Sleep(3000) dazu. Ausprobieren!

    Ich habe eine Funktion geschrieben, die in einer Schleife auf ein bestimmten String im Quell-Code wartet, bevor es weiter geht.... läuft wesentlich zuverlässiger...



    ich habe das Gefühl, dass Chrome, die Automatisierungssoftware verwendet, etwas anders ist als der normale Chrome-Browser... zumindest sind die Einstellungen nicht identisch und auch die Seiten sind teilweise geringfügig unterschiedlich.... Warum ist das so und wie kann man diese automatisierungs-Variante abschalten?

    Gruß

    TimerDiff gibt den Wert in Millisekunden zurück.

    Wenn Du den Wert durch 1000 dividierst, erhältst Du Sekunden.

    Wie willst Du dann ein Ergebnis von 0,008 erhalten?

    na 0,008 Sekunden gehe ich mal davon aus. Ich hatte ja das Gefühl, dass "_WD_Loadwait($sSession)" nicht funktioniert.... Die 0,008 Sekunden würden das bestätigen...

    Die Frage ist, warum funktioniert sie nicht und habt Ihr die gleiche Erfahrung gemacht?

    Schau mal in die WD_Demo.au3 rein. Da wird Chrome genau so beendet:

    ja... ich habe es gesehen... hatte gehofft, dass es eine bessere Lösung gibt....




    Schreib mal vor und nach WD_Loadwait die Zeit auf die Konsole. So sieht man, wie lange die Funktion wartet.

    So? oder gibt es da eine schönere Lösung?

    Code
    Local $sUrl = "https://www.Google.com" ; Url
    _WD_Navigate($sSession,$sUrl) ; Navigate to the designated URL
    Local $hTimer = TimerInit()
    _WD_Loadwait($sSession)
    MsgBox(0, "", Round(TimerDiff($hTimer)/ 1000,3))

    mit diesem versuch, wartet er 0,008 Sekunden also praktisch nicht.... aber ich habe es auch mal nur mit "_WD_Loadwait($sSession)" versucht, und das Internet ausgeschalten, es konnte also nicht fertig laden, und der Code lief einfach durch....


    Mein Problem ist nämlich, dass ich nach etwas auf der Seite suche, das noch nicht geladen ist, obwohl ich "_WD_Loadwait($sSession)" verwende.... er wartet auf jeden fall nicht, bis alles geladen ist.


    Gruß

    Das ist die korrekte Vorgangsweise - zumindest in meinem FF Skript funktioniert das perfekt.

    ok.... Chrome mag das offensichtlich nicht so...


    P.S. Wenn man Dir bei einem Problem helfen soll, dann musst Du möglichst vollständige Informationen zur Verfügung stellen. "Geht nicht" oder "Es kommt eine Fehlermeldung" genügt nicht.

    ich bemühe mich....







    Und warum funktioniert eigentlich das "_WD_Loadwait($sSession)" nicht?


    Code
    Local $sUrl = "https://www.Google.com" ; Url
    _WD_Navigate($sSession,$sUrl)
    _WD_Loadwait($sSession)
    $sSource = _WD_GetSource($sSession)

    der Code läuft immer weiter, obwohl die Seite noch nicht geladen ist. Deshalb ist im "$sSource" am Ende der falsche oder zumindest nicht der Vollständige Quell-Code... :/


    Gibt es in einem Quell-Code einen Bereich/Zeichenfolge, die auf allen Seiten gleich ist und zum Schluss geladen wir, nach der man suchen kann, ob die Seite fertig geladen ist.


    Gruß

    ok....

    Ich sehe jetzt den Fehler, verstehe ich aber noch nicht.... Was ändert sich dann an dem Oder durch die Klammern? Oder bedeutet doch, dass entweder das eine ODER das andere True sein muss um um die MsgBox zu starten.... Ohne klammer verhält sich das Or doch wie ein And??? wofür brauch ich das Or dann? :/

    Hallo...

    Ich verstehe nicht, warum in der ersten If-Abfrage in meinem Beispiel die Abfrage "True" ist und somit die MsgBox startet und wenn ich in der zweiten If-Abfrage noch ein Or Parameter hinzufüge, die Abfrage nicht mehr "True" ist.... der Parameter vor dem Or wurde ja nicht verändert und müsste trotzdem ein "True" ergeben, auch wenn der Parameter nach dem Or "False" ergeben. oder sehe ich das falsch?

    Beispiel:

    Code
    $Aufgabe_auslesen = "Messer"
    $sSource = "bla bla Max Muster bla bla"
    If $Aufgabe_auslesen = "Messer" And StringInStr($sSource, "Max Muster") <> 0 Then MsgBox(0,$Aufgabe_auslesen, "geht doch 1" )
    If $Aufgabe_auslesen = "Messer" And StringInStr($sSource, "Max Muster") <> 0 Or $Aufgabe_auslesen = "Teller" And StringInStr($sSource, "Dennis") <> 0 Then MsgBox(0,$Aufgabe_auslesen, "geht doch 2" )

    Gruß

    Das Wiki verlinkt auf einen Thread mit Beispielen. Siehe dort.

    Oder WD_Demo das mit der UDF mitkommt.

    ich habe da nur das gefunden:

    Code
    _WD_DeleteSession($sSession)
    _WD_Shutdown()

    und das Killt mir den kompletten Chrome Browser.... und wenn ich ihn dann wieder öffne, kommt die Meldung, dass ich Chrome unsachgemäß geschlossen habe.

    ich würde gerne einzelne Tabs schließen und zum Schluss auch das letzte Chrome-Fenster, ohne dass Chrome mit mir schimpft... :)

    Gruß