Hallo Michael,

the usual question: which HtmlUnit version do you use?

HtmlUnit tries to emulate browsers but doesn't (yet ;-)) do it perfectly. When such a problem is discovered, most of the time it can quickly implemented.

Switching to Firefox emulation is done by specifying the User-Agent header. Suggestions for a nicer way to handle it are welcome.

Cheers,
Marc.
--
Blog: http://mguillem.wordpress.com


Michael Vorburger wrote:
Hello / Grüezi WebTest experts,
I am doing a <clickButton xpath="..."> on an HTML <button onclick="get(...)" where that get JS function calls some stuff which ultimately tries to do this: // Automagically resize the layer to needed space.
function resizeLayer(theLayer){
   theLayer=theLayer?theLayer:$("someframe");
   if (document.all){ // IE
      theLayer.style.width = theLayer.document.body.scrollWidth;
      theLayer.style.width = theLayer.document.body.scrollWidth; //IE needs 
doublecheck
      theLayer.style.height = theLayer.document.body.scrollHeight+10;
   }else{ // FF
      theLayer.style.width = theLayer.contentDocument.body.scrollWidth+19;
      theLayer.style.height = theLayer.contentDocument.body.scrollHeight;
  }
}

which causes the following error:

Wrapped com.gargoylesoftware.htmlunit.ScriptException: TypeError: Cannot read property 
"body" from undefined (some.js#123) (...)
        at submitForm(some.js:1638)
        at get(some.js:1596)
        at (onclick event for HtmlButton[<button class="iconbutton" title="submit" 
onclick="get(...)">]:1)

where line 1638 is that "theLayer.style.width = theLayer.Document.body.scrollWidth;" from 
above.  If I understand this right, the theLayer thing probably works, but theLayer.Document is 
undefined?   I also tried the FF version (just by changing the some.js file) and it reports the 
same error, just in the line "theLayer.style.width = 
theLayer.contentDocument.body.scrollWidth+19", so again does this probably means the 
contentDocument is not defined?

My question is: In principle, is this kind of thing supposed to work - like does HTMLUnit used by WebTest emulate a "full browser" where getting the Document from a layer should be fine - or am I already reaching the limits here?
Many thanks for any comments / ideas / etc. in advance!


PS: How/where can I "switch" to a "Firefox emulation" (does that exist?) so that there is 
no document.all and it tries the else (without me changing the .js code).  I noticed a log line "INFO 
(com.canoo.webtest.engine.Configuration) - Surfing with browser 4.0 (compatible; MSIE 6.0; Windows 98)", 
but that's just the Agent probably.  Where to change that, and if it's change, will the document.all JS be 
different?

____________________________________________________________

• This email and any files transmitted with it are CONFIDENTIAL and intended
  solely for the use of the individual or entity to which they are addressed.
• Any unauthorized copying, disclosure, or distribution of the material within
  this email is strictly forbidden.
• Any views or opinions presented within this e-mail are solely those of the
  author and do not necessarily represent those of Odyssey Financial
Technologies SA unless otherwise specifically stated.
• An electronic message is not binding on its sender. Any message referring to
  a binding engagement must be confirmed in writing and duly signed.
• If you have received this email in error, please notify the sender immediately
  and delete the original.
_______________________________________________
WebTest mailing list
[email protected]
http://lists.canoo.com/mailman/listinfo/webtest



_______________________________________________
WebTest mailing list
[email protected]
http://lists.canoo.com/mailman/listinfo/webtest

Reply via email to