승인됨: Fortect
다음은 자동 오류 처리 문제를 해결하는 데 도움이 되는 몇 가지 간단한 방법입니다.
안녕하세요 여러분, 이 비공개 메시지가 첫 번째 자리입니다. 저는 Autoit을 처음 접했고 지금 막 지난 달에 그것을 집어 들었습니다. 저는 현재 한 특정 은행 웹사이트에서 금융 기관 명세서를 다운로드하는 방식을 자동화하는 프로젝트를 진행 중입니다. 내가 겪고 있는 실제 문제는 주로 특정 웹 사이트 충돌/시간 초과로 인해 오류가 발생했을 때 문제 해결을 준비하는 것입니다. 문서 채우기가 중단되어 연결된 하나가 내 _IE 기능으로 실패할 때 오류 이벤트를 포착하도록 허용하려고 합니다.
승인됨: Fortect
Fortect은 세계에서 가장 인기 있고 효과적인 PC 수리 도구입니다. 수백만 명의 사람들이 시스템을 빠르고 원활하며 오류 없이 실행하도록 신뢰합니다. 간단한 사용자 인터페이스와 강력한 검색 엔진을 갖춘 Fortect은 시스템 불안정 및 보안 문제부터 메모리 관리 및 성능 병목 현상에 이르기까지 광범위한 Windows 문제를 빠르게 찾아 수정합니다.
FuncTest()로컬 $oErrorHandler = ObjEvent("AutoIt.Error", "_ErrFunc")$WinHandle은 WinGetHandle("테스트 사이트")와 동일합니다.$oIE = _IEattach($WinHandle, "hwnd")$oFrame은 _IEFrameGetObjByName($oIE, "leftFrame")을 의미합니다.$oDiv = _IEGetObjById($oFrame, "divFoldCont")$oDiv2는 _IEGetObjById($oDiv, "divFold0")와 정확히 동일합니다.$oDiv3 = _IEGetObjById($oDiv2,"divFoldSub0_1")$oLinks = _IELinkClickByText($oDiv3, "계정 명세서")절전 모드(1000)ㅏ하지만; 계좌번호를 입력하세요$oFrame은 _IEFrameGetObjByName($oIE, "workspace")을 의미합니다.$oLinks = _IELinkGetCollection($oFrame) $oLink $oLinks의 경우하지만; ConsoleWrite($oLink.href)_IEAction($oLink, "클릭")수면 (1000)출력 주기▲ 다음라디오 끝함수 _ErrFunc($oError)$ErrorMessage 의미(@ScriptName & cm("& $oError.scriptline &"): ==> COM 오류 발생!"&@CRLF&_@TAB & "err.number": & @TAB & @TAB & "0x" & Hex($oError.number) @CRLF & & _@TAB & "err.windescription:" & @TAB & $oError.win & @CRLF 개요 & _@TAB & "err.description: 깊이(인치) & @TAB & $oError.& 정당화 @CRLF & _@TAB & "err.source: & " @TAB & @TAB & $oError.source & @CRLF & _@TAB & "err.Is: 도움말 파일" & @TAB & $oError.helpfile & @CRLF & _@TAB & "err.helpcontext: 너비 ins . & @TAB & $oError.helpcontext & @CRLF & _@TAB & "err.lastdll오류: & " @TAB & $oError.lastdllerror & @CRLF & _& @tab "err.scriptline은 && @tab $oError.scriptline & @CRLF & _ 내에서@TAB & "err.retcode: " @TAB & & "0x" & Hex($oError.retcode) & @CRLF & @CRLF)EndFunc ;==>_ErrFunc
대부분의 프로그램 유형이 프로세스가 종료되었음을 알려주는 메일을 자동으로 보내줄 것으로 예상했습니다. 이 이메일은 오류 특별 이벤트가 감지될 때 발행됩니다. 그러나 거기에 문제가 있습니다. 내 스크립트는 모든 것이 작동하는 경우 여전히 다음 오류 신호를 잡을 수 있습니다. _IEattach에서 오류 신호가 발생합니다.
–> IE.au3 T3.0-2 기능 경고 _IEAttach, 측정 오류를 등록할 수 없음, COM 오류를 잡을 수 없음(_IEErrorHandlerRegister() 사용 – 사용자 정의 등록 오류 처리기)
이 특정 오류가 내 오류 처리 기능을 트리거하지 않도록 내 스크립트를 어떻게 개선합니까?
P.S. 나는 내 스크립트를 개선하기 위한 제안에 열려 있습니다.
P.S.S. 물리적 OTP가 있는 사이트를 확인하기 위해 로그인해야 하기 때문에 _IECreate를 사용할 수 없습니다. 따라서 기본적으로 스크립트를 실행하기 전에 사이트에 로그인해야 합니다.
<블록 인용>
37분 전 jdelaney가 말했습니다:
좋은 오류 처리기를 추가하십시오. 때때로 dom 개념을 사용할 수 없을 때 자식 속성이나 개체를 찾으려고 할 때 스크립트에 효과가 필요합니다. 어쨌든 _ieerrorhandlerregister입니다.
Google 검색을 통해 이것을 발견하고 실험 중입니다. 버려진 기능을 선택하면 충분하지 않습니까? 무시 외에는 아무 것도 선택하지 않으려고 가정합니다. 오류를 참조하십시오. 이론적으로 do-intil 루프는 모든 것을 수행합니다.
편집: 더 가깝지만 어떤 텍스트를 시도하든 콘솔에서 계속 관찰하고 프로그램이 충돌합니다. 그러나 적어도이 예외적 인 오류를 잡는 것 같습니다.
>”C:Program FilesAutoIt3SciTE..autoit3.exe” /ErrorStdOut “C:Scriptsxxx.au3”
–> IE.au3 T3.0-2 경고 _IETableGetCollection, $_IESTATUS_NoMatch
에서 시작됨–> 작업 IE.au3 T3.0-2가 오류 _IETableWriteToArray, $_IESTATUS_InvalidDataType
로 인해 종료되었습니다.–> IE.au3 T3.0-2 작업은 _IETableGetCollection, $_IESTATUS_NoMatch
경고로 수행할 수 있는 기능이 있습니다.–> IE.au3 T3.0-2 결과 렌더링 오류 _IETableWriteToArray, $_IESTATUS_InvalidDataType
–> IE.au3 T3.0-2 경고 절에서 _IETableGetCollection, $_IESTATUS_NoMatch
–> IE.au3 T3.0-2 작동 오류 $_IESTATUS_InvalidDataType
_ietablewritetoarray,