5

window.onerror으로 애플리케이션의 js 오류를 캡처하고 있지만 개발자 도구가 열리지 않으면 Chrome에서 url 매개 변수가 전달 된 URL과 항상 동일하게 전달됩니다.크롬에서 JS 오류 캡처

dev 도구가 열려있는 경우 - url이 정확히 .js 파일을 가리키면 js 오류가 발생합니다.

어떻게 처리합니까? 해결 방법이 있습니까? -이 페이지

  • Uncaught ReferenceError: a is not defined List.js:122를 가져 오는 한 후 수신 -이 개발 도구는 오픈과 같은 페이지를 가져 오는 한 후받은

    1. Uncaught ReferenceError: a is not defined index:122 : -

      그리고 더 명확하게하기 위해 여기에 2 개 결과이다. 예상되는 결과입니다. 테스트를 위해 List.js 파일에 a(); 전화를 걸어 왔습니다.

    UPD :이 기능 테스트 (셀레늄 webdriver 사용) 수행됩니다 - 내가 더 조사를 위해 JS 오류를 캡처 할.

  • +0

    수정해야 할 예외가있는 경우 개발자 도구의 소스 탭을 연 다음 패널 왼쪽 하단에있는 "일시 중지/모두 잡히지 않은 예외"라고 말하고 싶습니다. –

    +1

    @ Fabrício Matté : 기능 테스트 용 - 추가 조사를 위해 js 오류를 포착하고 싶습니다. 죄송합니다. 처음에는 언급하지 않았습니다. – zerkms

    답변

    1

    이의 다음과 같은 구조를 제기하자 urls.

    또한합니다 (unexisting bibi() 함수를 호출 한 후이 경우) 결과로 가지고, 예상치 못한 예외에 대해 다음과 같은 메시지가 작동 추가 조사 후

    screenshot of an unexpected exception

    , 내 프레임 워크는 집의 어떤 종류를 사용하고 있습니다 모든 단일 작업이 작업에 속하는 작업 관리 (실제로 스택에 표시됨).

    작업 실행 방법은 그래서 모든 단일 실행이 하나의 try catch 블록 내에서 캡슐화 의미 다음 (간체)

    try { 
         oTask.func.apply(oTask.obj, oTask.prms); 
        } catch(ex) { 
         handleException(ex); 
         return false; 
        } 
    

    입니다. 보시다시피 예외이 발견되어 처리기로 전달됩니다. 오류이 아닙니다.

    나는 다른 파일에서 작업하고 있었지만 호출이 캡슐화 되었기 때문에 api.js 파일 내에서 프레임 워크가 관리하지 않는 무료 호출이었습니다.

    +0

    실제로는 아닙니다. 응용 프로그램 수준의 오류 처리이지만 예기치 않은 js 오류 (예 : 비 기능 호출 또는 정의되지 않은 변수 속성 액세스). – zerkms

    +0

    네, 잘 작동합니다. – Sebas

    +0

    2 분 안에 스크린 샷을 추가 할 예정입니다. 기존의'a()'함수를 호출하지 않고 예제를 작성했기 때문에 새로운 내용이 전혀 입력되지 않았습니다. – zerkms

    1

    더 많은 것 뭔가를 시도해보십시오 정말 도움이 될 수도 있습니다.

    크롬은 최근 편리한 URL 목록에 chrome://inspect/을 추가했습니다 (전체 목록은 chrome://chrome-urls/ 참조). 내가 불행하게도 이것에 대해 읽은 짹짹 또는 블로그 게시물을 찾을 수 없지만 나는 지난 달 내에 있다고 생각합니다. URL은 Chrome에서 제대로 작동합니다.

    chrome://inspect/검사 링크를 사용하여 열려있는 모든 탭을 열거합니다.이 링크는 기존 열린 페이지로 리디렉션되지만 DevTools도 열립니다. 수

    내가 셀레늄 테스트가 하나 개의 탭에서 테스트중인 사이트를 열고 두 번째 탭에서 페이지를 검사 다시 테스트 페이지에 inspect 링크를 열 수 있다고 생각하고

    하지만 개방 DevTools로이 시간, window.onerror을 사용하면 더 나은 오류를 포착 할 수 있습니다.

    뭔가 같은 :

    window.addEventListener("error", handleException, false); 
    
    function handleException(I_sMsg) { 
    
        if (I_sMsg.stack) { 
          sMsg = I_sMsg.stack.replaceAll(getBaseURL(), ""); 
         alert(sMsg); 
        } else if (I_sMsg.message) { 
         alert(I_sMsg.message); 
        } 
    
        return cancelEvent(I_sMsg); 
    } 
    

    지금 어떤 throw new Error("description");이 경우 문장의 첫 부분을 통과하고 당신이 구문 분석에 대한 좋은 스택이있을 것이다 :

    document.getElementsByClassName('row')[n].getElementsByTagName('a')[0].click() 
    
    +0

    "두 번째 탭에서 검사 페이지를 엽니 다."- 확실하지는 않지만, 가능하다면 해결책이 될 수 있습니다. 감사합니다 .-) – zerkms