2

I am trying this code:

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);
    }
}

It works good with the simple JavaScript Code such as "1+1". i want to execute a particular function that is defined in the page source of the URL. URL is the field that i have defined in this code.

1
  • please help me to call function that is defined in the pagesource of the url. Thanks. Commented Apr 13, 2012 at 7:44

1 Answer 1

4

Here is a working example, I've tried to make it as simple as possible:

import com.gargoylesoftware.htmlunit.BrowserVersion;
import com.gargoylesoftware.htmlunit.WebClient;
import com.gargoylesoftware.htmlunit.html.HtmlPage;

public class Test {
    public static void main(String[] args) throws Exception {

       WebClient webClient = new WebClient(BrowserVersion.FIREFOX_3_6);

       HtmlPage page = webClient.getPage("http://www.iana.org/");
       String javaScriptCode = "inArray([1,2],3)";

       Object result = page.executeJavaScript(javaScriptCode).getJavaScriptResult();
       System.out.println(result);
    }
}
Sign up to request clarification or add additional context in comments.

1 Comment

,thanks .. in the same way i want to call the javascript function that is defined in the pagesource of any particular url.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.