[prev in list] [next in list] [prev in thread] [next in thread] 

List:       htmlunit-develop
Subject:    [HtmlUnit] [htmlunit:bugs] #1559 HTMLUnit not working with angularjs
From:       "senthil" <jksenthilraja () users ! sf ! net>
Date:       2016-12-26 8:57:26
Message-ID: /p/htmlunit/bugs/1559/6303af51617e761ae8405b26f7916db215023945.bugs () htmlunit ! p ! sourceforge ! net
[Download RAW message or body]

[Attachment #2 (multipart/related)]


--===============7730929149040420887==
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit

I am working in java with angularjs project. i confused how to use this jar.So any \
given proper solutions.....


---

** [bugs:#1559] HTMLUnit not working with angularjs**

**Status:** closed
**Group:** Latest SVN
**Created:** Sun Nov 24, 2013 01:05 PM UTC by cnmuc
**Last Updated:** Fri Feb 20, 2015 02:17 PM UTC
**Owner:** Marc Guillemot


According to https://developers.google.com/webmasters/ajax-crawling/docs/html-snapshot, \
with HtmlUnit (2.13) I am trying to create a snapshot for a webpage using AngularJS \
(1.2.1).

My Java code is: 

~~~~~~
WebClient webClient = new WebClient(BrowserVersion.FIREFOX_17);
						
final List<String> collectedAlerts = new ArrayList<String>();
webClient.setAlertHandler(new CollectingAlertHandler(collectedAlerts));
webClient.setAjaxController(new NicelyResynchronizingAjaxController());

webClient.getOptions().setCssEnabled(true);
webClient.getOptions().setRedirectEnabled(false);
webClient.getOptions().setAppletEnabled(false);
webClient.getOptions().setJavaScriptEnabled(true);
webClient.getOptions().setPopupBlockerEnabled(true);
webClient.getOptions().setTimeout(10000);
webClient.getOptions().setActiveXNative(false);
webClient.getOptions().setUseInsecureSSL(true);

webClient.getOptions().setThrowExceptionOnFailingStatusCode(true);
webClient.getOptions().setThrowExceptionOnScriptError(true);
webClient.getOptions().setPrintContentOnFailingStatusCode(true);

WebRequest request = new WebRequest(new URL("..."), HttpMethod.GET);

try {
	HtmlPage page = webClient.getPage(request);
	webClient.waitForBackgroundJavaScript(10000);
    //just wait
	for (int i = 0; i < 20; i++) {
		synchronized (page) {
			page.wait(500);
		}
	}

	return page.asXml();
} finally {
	webClient.closeAllWindows();
	for (final String alert : collectedAlerts) {
		System.out.println("ALERT: " + alert);
	}
}
~~~~~~

The call webClient.getPage(...) does not throws any exception. However, the result \
string still contains "unevaluated angular expressions" such as: 

~~~~~~
<div>
    {{name}}
</div>
~~~~~~

The same GET-request works without any exception in all current browsers.
Seems to be a bug in HTMLUnit.

Using BrowserVersion.Chrome throws an exception: 

~~~~~~
com.gargoylesoftware.htmlunit.ScriptException: TypeError: getStyles is not a \
function, it is undefined. \
                (http://localhost:9000/assets/javascripts/jquery-1.9.1.js#7161)
        at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine$HtmlUnitContextAction.run(JavaScriptEngine.java:684) \
                ~[htmlunit-2.13.jar:2.13]
        at net.sourceforge.htmlunit.corejs.javascript.Context.call(Context.java:602) \
                ~[htmlunit-core-js-2.13.jar:na]
        at net.sourceforge.htmlunit.corejs.javascript.ContextFactory.call(ContextFactory.java:507) \
                ~[htmlunit-core-js-2.13.jar:na]
        at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine.execute(JavaScriptEngine.java:570) \
                ~[htmlunit-2.13.jar:2.13]
        at com.gargoylesoftware.htmlunit.html.HtmlPage.loadExternalJavaScriptFile(HtmlPage.java:1062) \
                ~[htmlunit-2.13.jar:2.13]
        at com.gargoylesoftware.htmlunit.html.HtmlScript.executeScriptIfNeeded(HtmlScript.java:409) \
~[htmlunit-2.13.jar:2.13] Caused by: \
net.sourceforge.htmlunit.corejs.javascript.EcmaError: TypeError: getStyles is not a \
function, it is undefined. \
(http://localhost:9000/assets/javascripts/jquery-1.9.1.js#7161) ~~~~~~ 


---

Sent from sourceforge.net because htmlunit-develop@lists.sourceforge.net is \
subscribed to https://sourceforge.net/p/htmlunit/bugs/

To unsubscribe from further messages, a project admin can change settings at \
https://sourceforge.net/p/htmlunit/admin/bugs/options.  Or, if this is a mailing \
                list, you can unsubscribe from the mailing list.
--===============7730929149040420887==
MIME-Version: 1.0
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: 7bit

<div class="markdown_content"><p>I am working in java with angularjs project. i \
confused how to use this jar.So any given proper solutions.....</p> <hr/>
<p><strong> <a class="alink strikethrough" \
href="https://sourceforge.net/p/htmlunit/bugs/1559/">[bugs:#1559]</a> HTMLUnit not \
working with angularjs</strong></p> <p><strong>Status:</strong> closed<br/>
<strong>Group:</strong> Latest SVN<br/>
<strong>Created:</strong> Sun Nov 24, 2013 01:05 PM UTC by cnmuc<br/>
<strong>Last Updated:</strong> Fri Feb 20, 2015 02:17 PM UTC<br/>
<strong>Owner:</strong> Marc Guillemot</p>
<p>According to <a href="https://developers.google.com/webmasters/ajax-crawling/docs/html-snapshot" \
rel="nofollow">https://developers.google.com/webmasters/ajax-crawling/docs/html-snapshot</a>, \
with HtmlUnit (2.13) I am trying to create a snapshot for a webpage using AngularJS \
(1.2.1).</p> <p>My Java code is: </p>
<div class="codehilite"><pre><span class="nt">WebClient</span> <span \
class="nt">webClient</span> <span class="o">=</span> <span class="nt">new</span> \
<span class="nt">WebClient</span><span class="o">(</span><span \
class="nt">BrowserVersion</span><span class="nc">.FIREFOX_17</span><span \
class="o">);</span>

<span class="nt">final</span> <span class="nt">List</span><span \
class="o">&lt;</span><span class="nt">String</span><span class="o">&gt;</span> <span \
class="nt">collectedAlerts</span> <span class="o">=</span> <span \
class="nt">new</span> <span class="nt">ArrayList</span><span \
class="o">&lt;</span><span class="nt">String</span><span class="o">&gt;();</span> \
<span class="nt">webClient</span><span class="nc">.setAlertHandler</span><span \
class="o">(</span><span class="nt">new</span> <span \
class="nt">CollectingAlertHandler</span><span class="o">(</span><span \
class="nt">collectedAlerts</span><span class="o">));</span> <span \
class="nt">webClient</span><span class="nc">.setAjaxController</span><span \
class="o">(</span><span class="nt">new</span> <span \
class="nt">NicelyResynchronizingAjaxController</span><span class="o">());</span>

<span class="nt">webClient</span><span class="nc">.getOptions</span><span \
class="o">()</span><span class="nc">.setCssEnabled</span><span \
class="o">(</span><span class="nt">true</span><span class="o">);</span> <span \
class="nt">webClient</span><span class="nc">.getOptions</span><span \
class="o">()</span><span class="nc">.setRedirectEnabled</span><span \
class="o">(</span><span class="nt">false</span><span class="o">);</span> <span \
class="nt">webClient</span><span class="nc">.getOptions</span><span \
class="o">()</span><span class="nc">.setAppletEnabled</span><span \
class="o">(</span><span class="nt">false</span><span class="o">);</span> <span \
class="nt">webClient</span><span class="nc">.getOptions</span><span \
class="o">()</span><span class="nc">.setJavaScriptEnabled</span><span \
class="o">(</span><span class="nt">true</span><span class="o">);</span> <span \
class="nt">webClient</span><span class="nc">.getOptions</span><span \
class="o">()</span><span class="nc">.setPopupBlockerEnabled</span><span \
class="o">(</span><span class="nt">true</span><span class="o">);</span> <span \
class="nt">webClient</span><span class="nc">.getOptions</span><span \
class="o">()</span><span class="nc">.setTimeout</span><span class="o">(</span><span \
class="nt">10000</span><span class="o">);</span> <span \
class="nt">webClient</span><span class="nc">.getOptions</span><span \
class="o">()</span><span class="nc">.setActiveXNative</span><span \
class="o">(</span><span class="nt">false</span><span class="o">);</span> <span \
class="nt">webClient</span><span class="nc">.getOptions</span><span \
class="o">()</span><span class="nc">.setUseInsecureSSL</span><span \
class="o">(</span><span class="nt">true</span><span class="o">);</span>

<span class="nt">webClient</span><span class="nc">.getOptions</span><span \
class="o">()</span><span class="nc">.setThrowExceptionOnFailingStatusCode</span><span \
class="o">(</span><span class="nt">true</span><span class="o">);</span> <span \
class="nt">webClient</span><span class="nc">.getOptions</span><span \
class="o">()</span><span class="nc">.setThrowExceptionOnScriptError</span><span \
class="o">(</span><span class="nt">true</span><span class="o">);</span> <span \
class="nt">webClient</span><span class="nc">.getOptions</span><span \
class="o">()</span><span class="nc">.setPrintContentOnFailingStatusCode</span><span \
class="o">(</span><span class="nt">true</span><span class="o">);</span>

<span class="nt">WebRequest</span> <span class="nt">request</span> <span \
class="o">=</span> <span class="nt">new</span> <span \
class="nt">WebRequest</span><span class="o">(</span><span class="nt">new</span> <span \
class="nt">URL</span><span class="o">(</span><span class="s2">"..."</span><span \
class="o">),</span> <span class="nt">HttpMethod</span><span \
class="nc">.GET</span><span class="o">);</span>

<span class="nt">try</span> <span class="p">{</span>
    <span class="n">HtmlPage</span> <span class="k">page</span> <span \
class="o">=</span> <span class="n">webClient</span><span class="o">.</span><span \
class="n">getPage</span><span class="p">(</span><span class="n">request</span><span \
class="p">);</span>  <span class="n">webClient</span><span class="o">.</span><span \
class="n">waitForBackgroundJavaScript</span><span class="p">(</span><span \
class="m">10000</span><span class="p">);</span>  <span class="o">//</span><span \
class="n">just</span> <span class="k">wait</span>  <span class="n">for</span> <span \
class="p">(</span><span class="n">int</span> <span class="n">i</span> <span \
class="o">=</span> <span class="m">0</span><span class="p">;</span> <span \
class="n">i</span> <span class="o">&lt;</span> <span class="m">20</span><span \
class="p">;</span> <span class="n">i</span><span class="o">++</span><span \
                class="p">)</span> <span class="err">{</span>
        <span class="n">synchronized</span> <span class="p">(</span><span \
                class="k">page</span><span class="p">)</span> <span \
                class="err">{</span>
            <span class="k">page</span><span class="o">.</span><span \
class="k">wait</span><span class="p">(</span><span class="m">500</span><span \
class="p">);</span>  <span class="p">}</span>
    <span class="err">}</span>

    <span class="nt">return</span> <span class="nt">page</span><span \
class="nc">.asXml</span><span class="o">();</span> <span class="err">}</span> <span \
class="nt">finally</span> <span class="p">{</span>  <span \
class="n">webClient</span><span class="o">.</span><span \
class="n">closeAllWindows</span><span class="p">();</span>  <span \
class="n">for</span> <span class="p">(</span><span class="n">final</span> <span \
class="n">String</span> <span class="n">alert</span> <span class="o">:</span> <span \
class="n">collectedAlerts</span><span class="p">)</span> <span class="err">{</span>  \
<span class="n">System</span><span class="o">.</span><span class="n">out</span><span \
class="o">.</span><span class="n">println</span><span class="p">(</span><span \
class="s2">"ALERT: "</span> <span class="o">+</span> <span \
class="n">alert</span><span class="p">);</span>  <span class="p">}</span>
<span class="err">}</span>
</pre></div>


<p>The call webClient.getPage(...) does not throws any exception. However, the result \
string still contains "unevaluated angular expressions" such as: </p> <div \
class="codehilite"><pre><span class="nt">&lt;div&gt;</span>  <span \
class="cp">{{</span><span class="nv">name</span><span class="cp">}}</span> <span \
class="nt">&lt;/div&gt;</span> </pre></div>


<p>The same GET-request works without any exception in all current browsers.<br/>
Seems to be a bug in HTMLUnit.</p>
<p>Using BrowserVersion.Chrome throws an exception: </p>
<div class="codehilite"><pre><span class="nx">com</span><span class="p">.</span><span \
class="nx">gargoylesoftware</span><span class="p">.</span><span \
class="nx">htmlunit</span><span class="p">.</span><span \
class="nx">ScriptException</span><span class="o">:</span> <span \
class="nx">TypeError</span><span class="o">:</span> <span class="nx">getStyles</span> \
<span class="nx">is</span> <span class="nx">not</span> <span class="nx">a</span> \
<span class="kd">function</span><span class="p">,</span> <span class="nx">it</span> \
<span class="nx">is</span> <span class="kc">undefined</span><span class="p">.</span> \
<span class="p">(</span><span class="nx">http</span><span class="o">:</span><span \
class="c1">//localhost:9000/assets/javascripts/jquery-1.9.1.js#7161)</span>  <span \
class="nx">at</span> <span class="nx">com</span><span class="p">.</span><span \
class="nx">gargoylesoftware</span><span class="p">.</span><span \
class="nx">htmlunit</span><span class="p">.</span><span \
class="nx">javascript</span><span class="p">.</span><span \
class="nx">JavaScriptEngine$HtmlUnitContextAction</span><span class="p">.</span><span \
class="nx">run</span><span class="p">(</span><span \
class="nx">JavaScriptEngine</span><span class="p">.</span><span \
class="nx">java</span><span class="o">:</span><span class="mi">684</span><span \
class="p">)</span> <span class="o">~</span><span class="cp">[</span><span \
class="nx">htmlunit</span><span class="o">-</span><span class="mf">2.13</span><span \
class="bp">.</span><span class="nx-Member">jar</span><span class="p">:</span><span \
class="mf">2.13</span><span class="cp">]</span>  <span class="nx">at</span> <span \
class="nx">net</span><span class="p">.</span><span class="nx">sourceforge</span><span \
class="p">.</span><span class="nx">htmlunit</span><span class="p">.</span><span \
class="nx">corejs</span><span class="p">.</span><span \
class="nx">javascript</span><span class="p">.</span><span \
class="nx">Context</span><span class="p">.</span><span class="nx">call</span><span \
class="p">(</span><span class="nx">Context</span><span class="p">.</span><span \
class="nx">java</span><span class="o">:</span><span class="mi">602</span><span \
class="p">)</span> <span class="o">~</span><span class="cp">[</span><span \
class="nx">htmlunit</span><span class="na">-core-js</span><span \
class="o">-</span><span class="mf">2.13</span><span class="bp">.</span><span \
class="nx-Member">jar</span><span class="p">:</span><span class="nx">na</span><span \
class="cp">]</span>  <span class="nx">at</span> <span class="nx">net</span><span \
class="p">.</span><span class="nx">sourceforge</span><span class="p">.</span><span \
class="nx">htmlunit</span><span class="p">.</span><span class="nx">corejs</span><span \
class="p">.</span><span class="nx">javascript</span><span class="p">.</span><span \
class="nx">ContextFactory</span><span class="p">.</span><span \
class="nx">call</span><span class="p">(</span><span \
class="nx">ContextFactory</span><span class="p">.</span><span \
class="nx">java</span><span class="o">:</span><span class="mi">507</span><span \
class="p">)</span> <span class="o">~</span><span class="cp">[</span><span \
class="nx">htmlunit</span><span class="na">-core-js</span><span \
class="o">-</span><span class="mf">2.13</span><span class="bp">.</span><span \
class="nx-Member">jar</span><span class="p">:</span><span class="nx">na</span><span \
class="cp">]</span>  <span class="nx">at</span> <span class="nx">com</span><span \
class="p">.</span><span class="nx">gargoylesoftware</span><span \
class="p">.</span><span class="nx">htmlunit</span><span class="p">.</span><span \
class="nx">javascript</span><span class="p">.</span><span \
class="nx">JavaScriptEngine</span><span class="p">.</span><span \
class="nx">execute</span><span class="p">(</span><span \
class="nx">JavaScriptEngine</span><span class="p">.</span><span \
class="nx">java</span><span class="o">:</span><span class="mi">570</span><span \
class="p">)</span> <span class="o">~</span><span class="cp">[</span><span \
class="nx">htmlunit</span><span class="o">-</span><span class="mf">2.13</span><span \
class="bp">.</span><span class="nx-Member">jar</span><span class="p">:</span><span \
class="mf">2.13</span><span class="cp">]</span>  <span class="nx">at</span> <span \
class="nx">com</span><span class="p">.</span><span \
class="nx">gargoylesoftware</span><span class="p">.</span><span \
class="nx">htmlunit</span><span class="p">.</span><span class="nx">html</span><span \
class="p">.</span><span class="nx">HtmlPage</span><span class="p">.</span><span \
class="nx">loadExternalJavaScriptFile</span><span class="p">(</span><span \
class="nx">HtmlPage</span><span class="p">.</span><span class="nx">java</span><span \
class="o">:</span><span class="mi">1062</span><span class="p">)</span> <span \
class="o">~</span><span class="cp">[</span><span class="nx">htmlunit</span><span \
class="o">-</span><span class="mf">2.13</span><span class="bp">.</span><span \
class="nx-Member">jar</span><span class="p">:</span><span class="mf">2.13</span><span \
class="cp">]</span>  <span class="nx">at</span> <span class="nx">com</span><span \
class="p">.</span><span class="nx">gargoylesoftware</span><span \
class="p">.</span><span class="nx">htmlunit</span><span class="p">.</span><span \
class="nx">html</span><span class="p">.</span><span class="nx">HtmlScript</span><span \
class="p">.</span><span class="nx">executeScriptIfNeeded</span><span \
class="p">(</span><span class="nx">HtmlScript</span><span class="p">.</span><span \
class="nx">java</span><span class="o">:</span><span class="mi">409</span><span \
class="p">)</span> <span class="o">~</span><span class="cp">[</span><span \
class="nx">htmlunit</span><span class="o">-</span><span class="mf">2.13</span><span \
class="bp">.</span><span class="nx-Member">jar</span><span class="p">:</span><span \
class="mf">2.13</span><span class="cp">]</span> <span class="nx">Caused</span> <span \
class="nx">by</span><span class="o">:</span> <span class="nx">net</span><span \
class="p">.</span><span class="nx">sourceforge</span><span class="p">.</span><span \
class="nx">htmlunit</span><span class="p">.</span><span class="nx">corejs</span><span \
class="p">.</span><span class="nx">javascript</span><span class="p">.</span><span \
class="nx">EcmaError</span><span class="o">:</span> <span \
class="nx">TypeError</span><span class="o">:</span> <span class="nx">getStyles</span> \
<span class="nx">is</span> <span class="nx">not</span> <span class="nx">a</span> \
<span class="kd">function</span><span class="p">,</span> <span class="nx">it</span> \
<span class="nx">is</span> <span class="kc">undefined</span><span class="p">.</span> \
<span class="p">(</span><span class="nx">http</span><span class="o">:</span><span \
class="c1">//localhost:9000/assets/javascripts/jquery-1.9.1.js#7161)</span> \
</pre></div>


<hr/>
<p>Sent from sourceforge.net because htmlunit-develop@lists.sourceforge.net is \
subscribed to <a href="https://sourceforge.net/p/htmlunit/bugs/">https://sourceforge.net/p/htmlunit/bugs/</a></p>
 <p>To unsubscribe from further messages, a project admin can change settings at <a \
href="https://sourceforge.net/p/htmlunit/admin/bugs/options.">https://sourceforge.net/p/htmlunit/admin/bugs/options.</a> \
                Or, if this is a mailing list, you can unsubscribe from the mailing \
                list.</p></div>
--===============7730929149040420887==--



------------------------------------------------------------------------------
Developer Access Program for Intel Xeon Phi Processors
Access to Intel Xeon Phi processor-based developer platforms.
With one year of Intel Parallel Studio XE.
Training and support from Colfax.
Order your platform today.http://sdm.link/intel

_______________________________________________
HtmlUnit-develop mailing list
HtmlUnit-develop@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/htmlunit-develop


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic