프록시 추가 후 발생하는 Puppeteer waitForSelector 타임아웃
요소 대기를 프록시 연결 실패로 단정하기 전에 내비게이션 응답과 전달된 문서를 확인하세요.
waitForSelector 의 타임아웃은 기대한 요소가 대기 조건을 충족하지 못했다는 뜻입니다. 요소가 나타나기 전에 프록시를 추가했다고 해서 프록시의 TCP 연결이 시간 초과되었다는 것이 증명되지는 않습니다.
- 내비게이션 증거를 보관하세요. 최종 URL, 기본 응답 상태와 관련 실패 요청을 선택자 대기 전에 기록하세요. Puppeteer에서는 HTTP 오류 응답이 반드시 내비게이션 예외로 던져지지는 않습니다.
- 전달된 문서를 확인하세요. 문서 제목이나 주의 깊게 가린 스크린샷을 보면 로그인 챌린지, 접근 거부 페이지 또는 다른 지역 페이지가 드러날 수 있습니다. 의도한 페이지에서 애플리케이션 요청이 실패했을 수도 있으니 선택자와 프레임도 함께 확인하세요.
- 어떤 챌린지든 발생 원천에서 처리하세요. 프록시 챌린지라면 내비게이션 전에 지원되는 프록시 인증을 구성하세요. 대상 쪽 챌린지는 애플리케이션의 승인된 워크플로에 속하며 자체 자격 증명을 사용합니다.
이렇게 하면 요소 대기가 코드가 보고한 첫 예외가 되기 전에 이미 존재하던 유용한 증거가 드러나는 경우가 많습니다. 웹사이트 비밀번호를 프록시에 넘겨도 그 이전 문서는 바로잡을 수 없습니다.
실패한 작업을 파악한 뒤 타이머를 선택하세요. 내비게이션, 네트워크 설정, 요소 대기는 서로 다른 한도를 가집니다. 정말 느린 UI라면 선택자 대기를 길게 잡을 근거가 되지만, 오류 페이지는 여전히 잘못된 문서입니다.
비교하는 동안 브라우저 세션과 경로를 일정하게 유지하세요. 한 번의 시도에서 프록시, 선택자, 브라우저 상태를 모두 바꾸면 어떤 조건이 중요했는지 가려집니다.