2013-08-28 1 views
3

C#을 사용하여 셀레늄 웹 드라이버를 테스트하고 있습니다. 자바 스크립트 오류가 없다는 것을 내 웹 페이지에서 확인하고 싶습니다.셀레늄 C# - 자바 스크립트 오류 잡기

Firefox에 JSErrorCollector.xpi을 설치했으며 다음 코드를 내 코드에 추가했습니다 (here에서 가져옴).

List<object> errors = (List<object>)((IJavaScriptExecutor)_driver).executeScript("return window.JSErrorCollector_errors.pump()"); 
Assert.IsNull(errors); 

는하지만 다음과 같은 오류가 나타납니다 :

window.JSErrorCollector_errors is undefined (UnexpectedJavaScriptError)

이 문제를 해결하거나 사람이 더 나은 대안을 제공 할 수있는 모든 아이디어를 어떻게가?

답변

0

적어도 pump 메서드에 액세스하려고 시도하면 windowJSErrorCollector_errors 개체가 없습니다. JSErrorCollector_errors 개체의 pump 함수를 호출 할 때 해당 개체가 이미 있는지 확인하십시오.

+0

어떻게 'JSErrorCollector_errors'개체를 만들 수 있습니까? – user2184530

+0

이렇게하는 경우 : 을 HTML에 삽입하면 개체와 해당 메서드가 만들어 지지만 호출하기 전에이 메서드를 실행해야합니다. 귀하의 경우에는 오류가 너무 일찍이를 시도하는 것일 수 있습니다. –

0

다음은 JSErrorCollector.xpi와 관련이없는 해결책입니다 - 자바 스크립트 만.

var errorArray = []; 
window.onerror = function(message, file, line) { 
    errorArray.push("message: " + message + ", file: " + file + ", line: " + line); 
}; 

그리고 당신이 오류를 얻을해야 할 때마다 다음, 실행이 자바 스크립트 :

이 가
return errorArray; 

(가) 유일한 단점이며, 이것은 단지 발생하는 오류를 캡처이 먼저 실행하기 위해 JavaScriptExecuter을 사용할 수 있습니다 이 첫 번째 스크립트를 실행 한 후에 그러나 그것은 당신이 당신의 질문을 토대로 필요로하는 모든 것일 수도 있습니다.

관련 문제