Java 응용 프로그램을 통해로드 된 DOM html 페이지에서 "returnAllLinkTexts()
"이라는 Javascript 함수를 실행하려고합니다. 아래 라인은 Swing Buton에 의해 실행됩니다.자바 스크립트를 실행하려고 할 때 "AWT-EventQueue-0"예외 java.lang.NullPointerException
myscript = browser.executeJavascript("returnAllLinkTexts()").toString(); //Line 407
때때로 다음과 같은 예외가 발생합니다. Java 응용 프로그램이 종료되거나 충돌하지 않습니다.
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException com.demo.Main$BigButtonListener.actionPerformed(Main.java:407)
약 20 회 반복 시도하기 위해 다음을 시도했지만이 시점까지 도달하지 않았습니다. 예외는 407
int st = 0;
while (myscript == null){
myscript = browser.executeJavascript("gogo()").toString(); if (myscript != null) break;
if (shit == 20) break;
sht++;
}
UPDATE @ 즉시 발생 :
이 returnAllLinkTexts();
function returnAllLinkTexts(){
var mydata = new Array();
$('a', document).each(function() {
mydata.push($(this).text());
});
return mydata;
}
올바른 방향이지만 jQuery가 이미로드되었습니다. 이 Java 예외는 returnAllLinkTexts가 사용될 때만 발생하는 것으로 보입니다 .... 단순한 텍스트 일 경우 Java NullPointerExceptions .... 약 1 분이 걸리는 100 개의 루프를 호출하려고 시도했지만 여전히 null입니다. ... 다른 시간에 잘 작동하고 있습니다 ... 지금 당장은 완전히 좌절했습니다. – KJW
@Kim weird 실제로, 편집을 참조하십시오. JS 함수 내에서 일반 문자열을 반환하면 문제가 해결 될 수 있습니다. –
returnAllLinkTexts()에서 jQuery 함수와 메서드를 제거하면 모든 것이 정결 해 보였기 때문에 이것이 문제라고 생각합니다. jQuery 함수를 추가 할 때 문제가 발생합니다. – KJW