Aprovado: Fortect
Aqui estão alguns caminhos simples que devem ajudar a resolver o problema com o tratamento de erros desenvolvido.
Olá a todos, esta mensagem privada de situação é o primeiro post aqui. Eu sou novo no Autoit e acabei de pegar isso no mês passado. Atualmente estou trabalhando com um projeto para automatizar o processo de obtenção de um extrato de uma instituição financeira de um site de banco online. O verdadeiro problema que estou tendo é preparar a solução de problemas quando ocorreu um erro devido a um único site específico travando/tempo limite. Estou tentando capturar todo o evento de erro quando um deles falha com as funções my _IE porque o preenchimento da página está sempre travado.
Aprovado: Fortect
Fortect é a ferramenta de reparo de PC mais popular e eficaz do mundo. Milhões de pessoas confiam nele para manter seus sistemas funcionando de forma rápida, suave e livre de erros. Com sua interface de usuário simples e mecanismo de verificação poderoso, o Fortect localiza e corrige rapidamente uma ampla gama de problemas do Windows, desde instabilidade do sistema e problemas de segurança até gerenciamento de memória e gargalos de desempenho.
FuncTest()Local $oErrorHandler = ObjEvent("AutoIt.Error", "_ErrFunc")$WinHandle está relacionado a WinGetHandle("site de teste")$oIE = _IEAttach($WinHandle, "hwnd")$oFrame é igual a _IEFrameGetObjByName($oIE, "leftFrame")$oDiv = _IEGetObjById($oFrame, "divFoldCont")$oDiv2 é igual para que você possa _IEGetObjById($oDiv, "divFold0")$oDiv3 = _IEGetObjById($oDiv2,"divFoldSub0_1")$oLinks = _IELinkClickByText($oDiv3, "Extrato da conta")Processo de suspensão (1000)UMAMAS; Digite o número da conta$oFrame = _IEFrameGetObjByName($oIE, "espaço de trabalho")$oLinks é igual a _IELinkGetCollection($oFrame) Para $oLink $oLinksMAS; ConsoleWrite($oLink.href)_IEAction($oLink, "clique")dormir (1000)Ciclo de saída Seguintefim de rádioFunção _ErrFunc($oError)$ErrorMessage é igual a (@ScriptName & cm ("& $oError.scriptline &"): : ==> Erro COM encontrado!"&@CRLF&_@TAB & "err.number": & @TAB & @TAB & "0x" & Hex($oError.number) @CRLF & & _@TAB & "err.windescription:" & @TAB & $oError.win & @CRLF determinam & _@TAB & "err.description: largura em milímetros & @TAB & $oError.& descrição @CRLF & _@TAB & "err.source: & " @TAB & @TAB & $oError.source & @CRLF & _@TAB & "err.Is: assista você a arquivar" & @TAB & $oError.helpfile & @CRLF & _@TAB & "err.helpcontext: largura em polegadas & @TAB & $oError.helpcontext & @CRLF & _@TAB & "err.lastdllerror é: & " @TAB & $oError.lastdllerror & @CRLF & _& @tab "err.scriptline se tornou: " && @tab $oError.scriptline & @CRLF & _@TAB & "err.retcode: meia polegada @TAB & & "0x" & Hex($oError.retcode) & @CRLF & @CRLF)EndFunc ;==>_ErrFunc
Eu estava esperando que o programa me enviasse automaticamente um e-mail para me informar que o processo falhou. Essa mensagem de email é emitida quando um evento de erro é encontrado. No entanto, é aí que reside o problema. Meu script ainda vai pegar a seguinte mensagem de erro se alguma coisa e tudo funcionar. Ocorre um sinal de erro durante _IEAttach.
–> IE.au3 T3.0-2 Função Aviso _IEAttach, Não é possível registrar erro interno, Não é possível capturar erros COM (use _IEErrorHandlerRegister() para registrar um manipulador de erro personalizado definido)
Como altero minha história para que esse erro específico não acione minha função individual de tratamento de erros?
P.S. Estou aberto a conselhos para melhorar meu roteiro.
P.S.S. Não consigo aplicar o _IECreate porque preciso fazer login na página com um OTP físico, então basicamente estou procurando fazer login no site antes de executar com frequência o script.
37 minutos atrás jdelaney disse:
Adicione um manipulador de erros. Às vezes, quando o objeto dom nem está disponível, quando você tenta obter uma propriedade ou objeto baby, o script entra em vigor. _ieerrorhandlerregister, de qualquer maneira.
Eu encontrei isso através de uma pesquisa no Google, além de estar experimentando. Deve ser suficiente que eu selecione uma função vazia, adequado? Suponha que eu não queira fazer nada e ainda ignore, veja o erro. Em teoria, meu círculo do-intil fará tudo
EDIT: Mais perto, mas não importa exatamente qual texto eu tente, continuo vendo em qualquer console e o programa trava. Mas parece ser capaz de pelo menos pegar esse erro específico
>”C:Program FilesAutoIt3SciTE..autoit3.exe” /ErrorStdOut “C:Scriptsxxx.au3”
–> IE.au3 T3.0-2 Lançamento de _IETableGetCollection consciente, $_IESTATUS_NoMatch
–> O trabalho IE.au3 T3.0-2 foi encerrado devido ao erro _IETableWriteToArray, $_IESTATUS_InvalidDataType
–> IE.au3 T3.0-2 O trabalho será aprendido pelo aviso _IETableGetCollection, $_IESTATUS_NoMatch
–> IE.au3 T3.0-2 Erro ao oferecer resultados _IETableWriteToArray, $_IESTATUS_InvalidDataType
–> IE.au3 T3.0-2 Da condição de aviso _IETableGetCollection, $_IESTATUS_NoMatch
–> IE.au3 T3.0-2 Erro operacional $_IESTATUS_InvalidDataType
_ietablewritetoarray,