Prevent HtmlUnit 2.13 from executing JavaScript

Triet Doan picture Triet Doan · Nov 18, 2013 · Viewed 7.8k times · Source

Here is my code to get the page:

WebClient webClient = new WebClient();
HtmlPage page = webClient.getPage(url);

The problem is the webClient always executes javascript automatically and throws me a list of error. I just want to get the raw source. How can I prevent it from executing script? I've found there is a way in version 2.9:

webClient.setJavaScriptEnabled(false);

But setJavaScriptEnabled() function was deprecated. Anyone knows how to solve this problem? Please help me. Thank you so much.

Answer

Mosty Mostacho picture Mosty Mostacho · Nov 18, 2013

Although setJavaScriptEnabled(boolean) was deprecated it was added to the WebClientOptions member of the WebClient. Here is the doc.

In order to disable JavaScript you should do this:

webClient.getOptions().setJavaScriptEnabled(false);

Additionally, if you you want to get the raw HTML code from the webpage you should take a look at this question:

How to get the pure raw HTML of a page in HTMLUnit while ignoring JavaScript and CSS?

Take into account that even the asXml() method change the formatting as well as the content of the web page you fetch (even if JavaScript is disabled).