私はこのコードを試しています:
import com.gargoylesoftware.htmlunit.BrowserVersion;
import com.gargoylesoftware.htmlunit.JavaScriptPage;
import com.gargoylesoftware.htmlunit.ScriptResult;
import com.gargoylesoftware.htmlunit.WebClient;
import com.gargoylesoftware.htmlunit.WebRequest;
import com.gargoylesoftware.htmlunit.WebResponse;
import com.gargoylesoftware.htmlunit.WebWindow;
import com.gargoylesoftware.htmlunit.html.HtmlPage;
import com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine;
import com.gargoylesoftware.htmlunit.javascript.host.html.HTMLScriptElement;
import java.net.URL;
import java.util.List;
public class Example {
public static void main(String[] args) throws Exception {
WebClient webClient = new WebClient(BrowserVersion.INTERNET_EXPLORER_6);
URL url=new URL("http://www.google.com");
WebRequest request= new WebRequest(url);
WebResponse response=new WebResponse(null, request, 6000);
webClient.setJavaScriptEnabled(true);
webClient.setThrowExceptionOnScriptError(false);
webClient.setCssEnabled(false);
webClient.setRedirectEnabled(true);
JavaScriptEngine engine = new JavaScriptEngine(webClient);
webClient.setJavaScriptEngine(engine);
HtmlPage firstPage = null;
ScriptResult result = null;
JavaScriptPage jsp=new JavaScriptPage(response, null);
try {
firstPage = webClient.getPage(request);
} catch (Exception e) {
e.printStackTrace();
}
String JavaScriptCode = "1+1";
try {
result = firstPage.executeJavaScript(JavaScriptCode);
} catch (Exception e) {
e.printStackTrace();
}
Object javaScriptResult = result.getJavaScriptResult();
System.out.println(javaScriptResult);
}
}
のような単純な JavaScript コードでうまく機能し"1+1"
ます。URL のページ ソースで定義されている特定の関数を実行したいと考えています。URL は、このコードで定義したフィールドです。