Aprobado: Fortect
Estos parecen ser algunos métodos simples que deberían ayudar a resolver el problema con el manejo de errores automático.
Hola a todos, este mensaje privado es la primera publicación aquí. Soy nuevo en Autoit y lo compré el mes pasado. Actualmente estoy trabajando en un proyecto para mejorar el proceso de descarga de un documento de una entidad financiera desde el sitio web de un banco. El problema real que estoy teniendo es prepararme para solucionar los problemas cuando se produjo un error debido a un bloqueo/tiempo de espera de un sitio web específico. Estoy tratando de detectar el evento de error cuando uno de ellos falla con mis funciones _IE debido a que el relleno de la página está atascado.
Aprobado: Fortect
Fortect es la herramienta de reparación de PC más popular y eficaz del mundo. Millones de personas confían en él para mantener sus sistemas funcionando de forma rápida, fluida y sin errores. Con su sencilla interfaz de usuario y su potente motor de análisis, Fortect encuentra y soluciona rápidamente una amplia variedad de problemas de Windows, desde la inestabilidad del sistema y los problemas de seguridad hasta la gestión de la memoria y los cuellos de botella en el rendimiento.
Prueba de función()$oErrorHandler local es igual a ObjEvent("AutoIt.Error", "_ErrFunc")$WinHandle es equivalente a WinGetHandle("sitio de prueba")$oIE implica _IEAttach($WinHandle, "hwnd")$oFrame = _IEFrameGetObjByName($oIE, "leftFrame")$oDiv = _IEGetObjById($oFrame, "divFoldCont")$oDiv2 era igual a _IEGetObjById($oDiv, "divFold0")$oDiv3 = _IEGetObjById($oDiv2,"divFoldSub0_1")$oLinks es igual a _IELinkClickByText($oDiv3, "Estado de cuenta")Modo de suspensión (1000)APERO; Introduzca el número de cuenta de comerciante$oFrame = _IEFrameGetObjByName($oIE, "espacio de trabajo")$oEnlaces = _IELinkGetCollection($oFrame)Para $oLink $oLinksPERO; ConsoleWrite($oLink.href)_IEAction($oLink, "clic")dormir (1000)Ciclo de salidaSiguientefinal de radioFunción _ErrFunc($oError)$ErrorMessage = (@ScriptName & cm ("& $oError.scriptline &"): : ==> ¡Error COM encontrado!"&@CRLF&_@TAB & "err.number": & @TAB & @TAB & "0x" & Hex($oError.number) @CRLF & & _@TAB & "err.windescription:" & @TAB & $oError.win & @CRLF esquema & _@TAB & "err.description: ancho en pulgadas & @TAB & $oError.& info @CRLF & _@TAB & "err.source: & media pulgada @TAB & @TAB & $oError.source & @CRLF & _@TAB & "err.Is: archivo de ayuda" & @TAB & $oError.helpfile & @CRLF & _@TAB & "err.helpcontext: grosor en pulgadas & @TAB & $oError.helpcontext & @CRLF & _@TAB & "err.lastdllerror es: & pulgadas @TAB & $oError.lastdllerror & @CRLF & _& @tab "err.scriptline se convirtió en: " && @tab $oError.scriptline & @CRLF & _@TAB & "err.retcode: " @TAB & & "0x" & Hex($oError.retcode) & @CRLF & @CRLF)EndFunc ;==>_ErrFunc
Parece que estoy esperando que el tipo de programa envíe automáticamente a las personas un correo electrónico para informarme que la función ha fallado. Este correo electrónico se emite cuando se detecta algún tipo de evento de error. Sin embargo, ahí radica que este problema. Mi secuencia de comandos aún puede detectar el siguiente mensaje de error si todo funciona. Se produce un código de computadora de error durante _IEAttach.
–> IE.au3 T3.0-2 Función Advertencia _IEAttach, No se puede almacenar el error interno, No se pueden detectar los desafíos COM (use _IEErrorHandlerRegister() para registrar un controlador de errores)
¿Cómo intento cambiar mi secuencia de comandos para que este error deseado no active mi función de manejo de errores?
P.D. Estoy abierto a sugerencias para mejorar mi guión.
P.S.S. No puedo usar _IECreate porque necesito que pueda iniciar sesión en el sitio con una OTP física, así que básicamente necesito iniciar sesión en algún tipo de sitio antes de ejecutar el script.
37 minutos después jdelaney dijo:
Agregue un controlador de errores. A veces, cuando un objeto dom no está disponible, cuando considera obtener una propiedad u objeto secundario, verá que el script tiene efecto. _ieerrorhandlerregister, de todos modos.
Encontré esto en una búsqueda de Google y estoy experimentando con esto. Debería ser suficiente que descubra una función vacía, ¿verdad? Supongamos que me motiva a no hacer nada más que ignorar, ver el error. En teoría, mi ciclo do-intil hará todo
EDITAR: Más cerca, pero no importa qué texto intente, sigo viendo en la consola y la aplicación falla. Pero parece al menos detectar este error particular único
>”C:Archivos de programaAutoIt3SciTE..autoit3.exe” /ErrorStdOut “C:Scriptsxxx.au3”
–> IE.au3 T3.0-2 Lanzamiento desde alerta _IETableGetCollection, $_IESTATUS_NoMatch
–> El trabajo IE.au3 T3.0-2 finalizó debido al error _IETableWriteToArray, $_IESTATUS_InvalidDataType
–> IE.au3 T3.0-2 El trabajo se realizará mediante la advertencia _IETableGetCollection, $_IESTATUS_NoMatch
–> IE.au3 T3.0-2 Error al representar los resultados _IETableWriteToArray, $_IESTATUS_InvalidDataType
–> IE.au3 T3.0-2 De la cláusula de advertencia _IETableGetCollection, $_IESTATUS_NoMatch
–> IE.au3 T3.0-2 Error operativo $_IESTATUS_InvalidDataType
_ietablewritetoarray,