문제 해결
BotManager Browser Agent 사용 시 발생할 수 있는 일반적인 문제와 해결 방법을 안내합니다.
일반적인 문제
BotManager 객체가 로드되지 않음
증상: window.BotManager가 undefined입니다.
원인:
- 스크립트가 아직 로드되지 않았습니다.
- 스크립트 경로가 잘못되었습니다.
- 네트워크 오류가 발생했습니다.
해결 방법:
- 스크립트 로드 확인:
// 스크립트 로드 확인
if (typeof window.BotManager === 'undefined') {
console.error('BotManager가 로드되지 않았습니다.');
}
- 스크립트 경로 확인:
<!-- 올바른 스크립트 경로 확인 -->
<script src="{{ AGENT_URL }}/agents/client/javascript/botmanager-browser-agent.js" async></script>
- 네트워크 탭에서 스크립트 로드 확인:
- 브라우저 개발자 도구의 Network 탭에서
botmanager-browser-agent.js파일이 성공적으로 로드되었는지 확인합니다.
- 브라우저 개발자 도구의 Network 탭에서
detectPage 함수가 작동하지 않음
증상: BotManager.detectPage()를 호출해도 아무 반응이 없습니다.
원인:
- BotManager 객체가 아직 초기화되지 않았습니다.
- 스크립트가 비동기로 로드되어 아직 준비되지 않았습니다.
해결 방법:
// 스크립트 로드 대기 후 사용
function waitForBotManager(callback) {
if (window.BotManager && typeof window.BotManager.detectPage === 'function') {
callback();
} else {
setTimeout(() => waitForBotManager(callback), 100);
}
}
waitForBotManager(() => {
BotManager.detectPage('/api/login-endpoint', (result) => {
performLogin();
});
});
탐지 요청이 전송되지 않음
증상: 페이지 로드 시 자동 탐지가 작동하지 않습니다.
원인:
cfg.detectOnLoad가false로 설정되어 있습니다.- 네트워크 타임아웃이 발생했습니다.
해결 방법:
- 설정 확인:
// detectOnLoad 설정 확인
(function(cfg) {
cfg.detectOnLoad = true; // 자동 탐지 활성화
})(window['BotManager-config'] || (window['BotManager-config'] = {}));
- 네트워크 타임아웃 증가:
cfg.networkTimeout = 5000; // 타임아웃 시간 증가
Server-Side Agent와 연동이 안 됨
증상: 서버에서 x-botmanager-location 헤더를 보냈지만 리디렉션이 발생하지 않습니다.
원인:
- Browser Agent가 로드되지 않았습니다.
- 헤더 이름이 잘못되었습니다 (대소문자 구분).
해결 방법:
- Browser Agent 로드 확인:
if (window.BotManager) {
console.log('Browser Agent가 로드되었습니다.');
}
- 헤더 이름 확인:
- 서버에서
x-botmanager-location(소문자)로 헤더를 전송해야 합니다.
- 서버에서
개발자 도구 탐지가 작동하지 않음
증상: 개발자 도구를 열어도 탐지되지 않습니다.
원인:
cfg.detectDevTools가false로 설정되어 있습니다.
해결 방법:
cfg.detectDevTools = true; // 개발자 도구 탐지 활성화
추가 지원
문제가 해결되지 않으면 다음을 확인하세요:
- 브라우저 콘솔에서 에러 메시지 확인
- Network 탭에서 요청/응답 확인
- BotManager 콘솔에서 설정 확인