2017-12-23 18 views
0

HtmlPage 클래스 (HTMLUnit)의 "executeJavaScript (String queryText)"메서드를 광범위하게 사용합니다. 그것은 잘 작동하지만 jQuery 또는 $ 기호를 queryText에서 인식하지 못합니다. 내부 jQuery 지원을 초기화하거나 jQuery 라이브러리를 포함해야한다고 가정합니다. 아무도 이것을하는 방법을 아는가? 감사합니다.HtmlUnit에서 jQuery를 사용하는 방법 executeJavaScript (쿼리) 인수?

답변

0

해당 진술을 실행하기 전에 jquery 스크립트를 다운로드하는 스크립트 태그가 있는지 확인하십시오. 그것을위한 최고의 장소는 페이지의 머리 요소 내에 있습니다. 또 다른 가능성은 $을 다시 정의하는 다른 타사 스크립트가 있다는 것입니다 (일반적인 문제입니다). 그러면 $ 대신 query을 사용해보십시오.

+0

안녕하세요, 신속한 답변 주셔서 감사합니다. 하지만 문제가 있습니다. 제대로 이해했다면

0
String jQueryInjector = 'eval(
    function loadJQuery(){ 
    var newJQueryLib = document.createElement("script");   
    newJQueryLib.type = "text/javascript"; 
    newJQueryLib.src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1 
                 /jquery.min.js"; 
    (document.getElementsByTagName("head")[0]||document 
    .getElementsByTagName("body")[0]) 
    .appendChild(newJQueryLib);); 
    loadJQuery();'; 
ScriptResult sr = page.executeJavaScript(jQueryInjector); 
+0

1.jQueryInjector는 executeJavaScript의 매개 변수로 사용되는 하나의 문자열입니다. 좀 더 읽기 쉽도록 몇 개의 따옴표와 + 부호를 생략했습니다. jQueryInjector는 한 번 정의되며 jQuery 라이브러리가 포함되지 않을 것으로 예상되는 경우 모든 새 페이지에 대해 executeJavaScript (jQueryInjector)가 실행됩니다. –

+0

2. jQuery를 삽입하는 가장 좋은 방법은 아닙니다. 그것은 eval을 사용하고 인터넷에서 jQuery 라이브러리를로드합니다. 앞으로는 직접 DOM 조작과 로컬 라이브러리를 사용할 예정입니다. 하지만 첫 번째 컷으로 잘 작동합니다. 나는 그것이 누군가에게 유용 할 것이기를 바랍니다. –