Genehmigt: Fortect
Hier sind einige wichtige einfache Methoden, die helfen sollten, ein Problem mit automatischer Fehlerbehandlung zu lösen.
Hallo zusammen, diese private Nachricht ist der erste Beitrag hier. Ich bin neu bei Autoit und habe es letzten Monat auch erst abgeholt. Ich arbeite derzeit an einem Projekt zur Automatisierung meines Prozesses zum Herunterladen eines Kontoauszugs eines Finanzinstituts, z.B. einer Bank-Website. Das eigentliche Problem, das ich pflege, ist die Vorbereitung auf die Fehlerbehebung, wenn ein Fehler aufgrund des Absturzes/Zeitüberschreitung einer bestimmten Website aufgetreten ist. Ich bin entschlossen, das Fehlerereignis abzufangen, wenn eines davon mit meinen _IE-Funktionen fehlschlägt, weil eine Art Seitenfüllung hängen bleibt.
Genehmigt: Fortect
Fortect ist das weltweit beliebteste und effektivste PC-Reparaturtool. Millionen von Menschen vertrauen darauf, dass ihre Systeme schnell, reibungslos und fehlerfrei laufen. Mit seiner einfachen Benutzeroberfläche und leistungsstarken Scan-Engine findet und behebt Fortect schnell eine breite Palette von Windows-Problemen - von Systeminstabilität und Sicherheitsproblemen bis hin zu Speicherverwaltung und Leistungsengpässen.
Funktionstest()Local $oErrorHandler = ObjEvent("AutoIt.Error", "_ErrFunc")$WinHandle ist äquivalent zu WinGetHandle("test site")$oIE ist gleich _IEAttach($WinHandle, "hwnd")$oFrame = _IEFrameGetObjByName($oIE, "leftFrame")$oDiv = _IEGetObjById($oFrame, "divFoldCont")$oDiv2 ist einfach gleich _IEGetObjById($oDiv, "divFold0")$oDiv3 = _IEGetObjById($oDiv2,"divFoldSub0_1")$oLinks impliziert _IELinkClickByText($oDiv3, "Kontoauszug")Schlafmodus (1000)EINABER; Geben Sie die Standortnummer ein$oFrame = _IEFrameGetObjByName($oIE, "Arbeitsbereich")$oLinks = _IELinkGetCollection($oFrame) Für $oLink $oLinksABER; ConsoleWrite($oLink.href)_IEAction($oLink, "Klick")schlafen (1000)AusgabezyklusAls nächstesRadio EndeFunktion _ErrFunc($oError)$ErrorMessage = (@ScriptName & cm ("& $oError.scriptline &"): . ==> COM-Fehler aufgetreten!"&@CRLF&_@TAB & "Fehlernummer": & @TAB & @TAB & "0x" & Hex($oFehlernummer) @CRLF & & _@TAB & "err.windescription:" & @TAB & $oError.win & @CRLF Gliederung & _@TAB & "err.description: Abmessungen in Zoll & @TAB & $oError.& Konto @CRLF & _@TAB & "Fehler.Quelle: & @TAB & @TAB & $oFehler.Quelle & @CRLF & _@TAB & "err.Is: help file" & @TAB & $oError.helpfile & @CRLF & _@TAB & "err.helpcontext: Breite innerhalb von Zoll & @TAB & $oError.helpcontext & @CRLF & _@TAB & "err.lastdllerror ist: & " @TAB & $oError.lastdllerror & @CRLF & _& @tab "err.scriptline started: " && @tab $oError.scriptline & @CRLF & _@TAB & "err.retcode: " @TAB & & "0x" & Hex($oError.retcode) & @CRLF & @CRLF)EndFunc ;==>_ErrFunc
Ich hatte den Programmtyp, um mir diese E-Mail automatisch zu senden, um mich darüber zu informieren, dass der Vorgang fehlgeschlagen ist. Diese E-Mail wird ausgegeben, wenn ein Fehlerereignis erkannt wird. Darin liegt jedoch das Problem. Mein Skript kann immer noch das Halten mit Fehlermeldung abfangen, wenn alles funktioniert. Während _IEAttach.
wird ein Fehlersignal ausgegeben
–> IE.au3 T3.0-2 Funktionswarnung _IEAttach, interner Fehler kann nicht registriert werden, COM-Fehler können nicht abgefangen werden (verwenden Sie _IEErrorHandlerRegister() zum Registrieren eines benutzerdefinierten Fehlerbehandlung)
Wie ändere ich mein Skript so, dass genau dieser Fehler meine Fehlerbehandlungsfunktion nicht auslöst?
PS. Ich bin morgens offen für Vorschläge, um mein Skript zu verbessern.
P.S.S. Ich kann _IECreate nicht verwenden, weil ich mich mit einem physischen OTP bei der Site anmelden muss, aus diesem Grund muss ich mich grundsätzlich bei der World Wide Website anmelden, bevor ich das Skript ausführe.
37 Minuten drinnen sagte jdelaney:
Fügen Sie einen Fehlerbehandler hinzu. Manchmal, wenn das dominic-Objekt nicht verfügbar ist, wenn Sie versuchen, sicherzustellen, dass Sie eine untergeordnete Eigenschaft oder ein untergeordnetes Objekt erhalten, wird die Software wirksam. _ieerrorhandlerregister sowieso.
Ich habe dies durch eine absolute Google-Suche gefunden und experimentiere damit. Es sollte ausreichen, dass ich Ihre leere Funktion auswähle, oder? Angenommen, ich möchte als Möglichkeit nichts tun, sondern ignorieren, siehe Fehler. In Maxim wird meine Do-Intil-Schleife alles tun
EDIT: Näher, aber egal welchen Text ich versuche, ich sehe routinemäßig immer wieder in der Konsole und das Programm rammt. Aber scheint zumindest genau diesen Fehler zu fangen
>”C:ProgrammeAutoIt3SciTE..autoit3.exe” /ErrorStdOut “C:Scriptsxxx.au3”
–> IE.au3 T3.0-2 Start von Alert _IETableGetCollection, $_IESTATUS_NoMatch
–> Job IE.au3 T3.0-2 beendet wegen Fehler _IETableWriteToArray, $_IESTATUS_InvalidDataType
–> IE.au3 T3.0-2 Arbeit wird durch Warnung _IETableGetCollection, $_IESTATUS_NoMatch
erledigt–> IE.au3 T3.0-2 Fehler beim Rendern der Ergebnisse _IETableWriteToArray, $_IESTATUS_InvalidDataType
–> IE.au3 T3.0-2 Aus Warnklausel _IETableGetCollection, $_IESTATUS_NoMatch
–> IE.au3 T3.0-2 Betriebsfehler $_IESTATUS_InvalidDataType
_ietablewritetoarray,