산발적 경험 브라우저 경험은 10 안정성을 자동화

가장 어려운 안정성을 느낌 브라우저 자동화 프로그램. 네트워크가 8 시간 실행 좋은 연속 논스톱가 아닌, 이상, 쉬운 일이 아닙니다, 특히에, 무인 자동 실행을 실현합니다. 많은 예상치 못한 비정상적인 상황 때문에. 다음과 같은 도움을 수행합니다

예외 - - 1), Visual Studio에서 디버그를해야 디버깅하는 경우 보조 디버깅 관리 - 제거 슬로우 틱의 ContextSwitchDeadLock을 절반으로 실행 방지하기 위해, 프롬프트, 인터럽트 프로그램 실행의 갑작스러운 외관.

당신은 WebBrowser 컨트롤을 사용하는 경우 2), ScriptErrorsSuppressed 예기치 않은 JS 오류, 인터럽트 프로그램의 실행을 방지하기 위해, true로 설정 될 수있다.

3) 셀레늄하면 쉽게 예외를 던질 수있는 드라이버를 기억, 너무 이상,뿐만 아니라 시도 캐치과 함께 장소 driver.PageSource에 쉽게 일반적으로없는 경우에도, 운전자의 장소가있는 사람들은주의 배입니다. driver.Close는 () 시도 캐치를 추가해야합니다. 네트워크 상태 가난하면 타임 아웃하는 경향이 있지만, 라이브 캐치를 시도 할 수 있습니다.

지연 4)에주의. 이러한 IO 작업으로, 자바 스크립트와 열린 새 페이지에서 셀레늄, 지연을 필요로한다. 타이머 너무 많은 문제가 경우에 Thread.sleep를 사용합니다. 어쨌든, 그래서 인터페이스를 차단 자동 무인 실행의 목적은 문제가되지 않습니다.

5) 네트워크 연결 상태가 좋지의 경우를 기억하고, 모든 페이지는 전체 페이지와 이상, 다양한 수, 브라우저 빈 페이지 자격이 없습니다 수도 절반 부하, 부하에 오랜 시간 동안 항상 끝나지 않는다 등 등등. 그래서 자바 스크립트, 웹 브라우저 컨트롤, 또는 셀레늄 요소를 찍을 때, 우리가 처음의 존재를 감지한다과, 때문에 그들이 이상 할 수없는 것을 방지하기 위해, 당연한 할 수 없습니다.

동시에, 모든 페이지의 시간이 걸릴, 모든 페이지가 완전히 감지로드됩니다. 나의 접근 방식은 전체 페이지가로드가 있다고 가정하면, 요소가 있는지 찾는 것입니다.

6) 당신이 더 발생할 수있는 프록시 서버 문제를 사용하는 경우. 예를 들어, 헤더는 등, HttpRequest에 추가 나타날 수 있습니다 예기치 않은 오류 페이지의 다양한 가지고 가고, 수 없습니다. 페이지를 취할 프록시 서버를 사용하면, 항상 소자 적절한 재시도 메카니즘의 추가 존재를 검출해야한다.

7) 예기치 않은 프롬프트, 확인 창이 매우 성가신입니다. 셀레늄이 사용될 경우, 적절한 감지 메커니즘에 첨가 될 수있다

8) 기본 원리는 모든 가능한 예외 라이브 잡기, 적절한 재시도 메커니즘을 추가 할 수 있다는 것입니다. 적절한 재시도 지연을 추가합니다. 예를 들어, 페이지가 열려 있지, 연속하지 않으려 고하지만 않는 몇 초 더 나은 결과를 다시 시도 지연 후.

9) 테스트를 많이해야합니다. 예를 들어, 책 다운로드 프로그램을, 당신은 당신이 할 경우에도, 열두, 다스를 다운로드 할 수 있습니다 생각하지 않습니다. 8시간 또는 정상 동작 또는 연속 에러 수백 본 대체로 고려하지 않고 통과 다운로드.

추천

출처www.cnblogs.com/badnumber/p/12078540.html