[Webtest] AJAX Support
Michal
Michal <uhmm@1234.sk>
Thu, 05 Apr 2007 18:13:31 +0200
Sorry missed some stuff...
Relevant test case:
<invoke url="test2.php"/>
<setSelectField
description="Select role"
htmlid="role"
text="Role 2"
/>
<sleep description="5s pause" seconds="5" />
<setSelectField
description="Select person"
htmlid="person"
value="Manager"
/>
Here is the error:
[invoke] INFO (com.canoo.webtest.steps.Step) - >>>> Start Step:
invoke (5/8)
[invoke] INFO (com.canoo.webtest.steps.request.AbstractTargetAction)
- -> gotoTarget by URL: test2.php
[invoke] INFO (com.canoo.webtest.steps.request.TargetHelper) -
getting response for url: http://host/wert/test2.php
[invoke] INFO (com.canoo.webtest.engine.WebClientContext) - Content
of window changed to http://host/wert/test2.php (text/html)
[invoke] INFO (com.canoo.webtest.engine.WebClientContext) - Content
of current window changed, it will become current response
[invoke] INFO (com.canoo.webtest.engine.WebClientContext) - Current
form set to none
[invoke] INFO (com.canoo.webtest.engine.WebClientContext) - Current
response now: http://host/wert/test2.php
[setSelectField] INFO (com.canoo.webtest.steps.Step) - >>>> Start Step:
setSelectField "Select role" (6/8)
[sleep] java.lang.NullPointerException
[sleep] at
com.gargoylesoftware.htmlunit.javascript.OptionsArray.get(OptionsArray.java:97)
[sleep] at
org.mozilla.javascript.ScriptableObject.getProperty(ScriptableObject.java:1343)
[sleep] at
org.mozilla.javascript.ScriptRuntime.getObjectElem(ScriptRuntime.java:1304)
[sleep] at
org.mozilla.javascript.ScriptRuntime.getObjectElem(ScriptRuntime.java:1288)
[sleep] at
org.mozilla.javascript.Interpreter.interpretLoop(Interpreter.java:2846)
[sleep] at
org.mozilla.javascript.Interpreter.interpret(Interpreter.java:2251)
[sleep] at
org.mozilla.javascript.InterpretedFunction.call(InterpretedFunction.java:161)
[sleep] at
org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:340)
[sleep] at
com.gargoylesoftware.htmlunit.javascript.HtmlUnitContextFactory.doTopCall(HtmlUnitContextFactory.java:151)
[sleep] at
org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:2758)
[sleep] at
org.mozilla.javascript.InterpretedFunction.call(InterpretedFunction.java:159)
[sleep] at
com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine.callFunction(JavaScriptEngine.java:363)
[sleep] at
com.gargoylesoftware.htmlunit.javascript.host.XMLHttpRequest.setState(XMLHttpRequest.java:145)
[sleep] at
com.gargoylesoftware.htmlunit.javascript.host.XMLHttpRequest.doSend(XMLHttpRequest.java:375)
[sleep] at
com.gargoylesoftware.htmlunit.javascript.host.XMLHttpRequest.access$000(XMLHttpRequest.java:72)
[sleep] at
com.gargoylesoftware.htmlunit.javascript.host.XMLHttpRequest$1.run(XMLHttpRequest.java:328)
[sleep] at java.lang.Thread.run(Thread.java:570)
[sleep] at
com.gargoylesoftware.htmlunit.ThreadManager$1.run(ThreadManager.java:118)
[setSelectField] INFO (com.canoo.webtest.steps.Step) - >>>> Start Step:
setSelectField "Select person" (8/8)
[setSelectField] INFO (com.canoo.webtest.steps.Step) - Running with:
Canoo Webtest: R_1537.
[setSelectField] INFO (com.canoo.webtest.steps.Step) - Exception thrown
from this class: com.canoo.webtest.engine.StepFailedException
[setSelectField] INFO (com.canoo.webtest.steps.Step) - Message was: No
option found matching criteria in select HtmlSelect[<select
name="person" id="person">]
INFO (com.canoo.webtest.steps.Step) - Running with: Canoo Webtest: R_1537.
INFO (com.canoo.webtest.steps.Step) - Exception thrown from this class:
com.canoo.webtest.engine.StepFailedException
INFO (com.canoo.webtest.steps.Step) - Message was: No option found
matching criteria in select HtmlSelect[<select name="person" id="person">]
INFO (com.canoo.webtest.ant.WebtestTask) - Finished executing webtest
"My description" (/home/kralik/apps/test/tests/wert/tasks/form0.xml:11: )
INFO (com.canoo.webtest.ant.WebtestTask) - Test report successfully
created.
As you can see, this throws the NullPointerException and doesn't work
with ajax :/
Marc Guillemot wrote:
> really strange.
>
> Can you provide the smallest html+js file allowing to reproduce your error?
>
> Marc.
>
> uhmm wrote:
>
>> I searched using find / -iname "*htmlunit*" and I found only one on
>> the whole disk. Version 1.11
>>
>>
>> Thursday, April 5, 2007, 9:01:13 AM, you wrote:
>>
>> MG> Have you searched on your whole disk for htmlunit*.jar?
>>
>> MG> Marc.
>>
>> MG> uhmm@1234.sk wrote:
>>
>>>> How can I find out if it is a classpath problem? There so no
>>>> other htmlunit code on the machine.
>>>>
>>>>
>>>> ----- Original Message -----
>>>> From: Marc Guillemot <mguillemot@yahoo.fr>
>>>> To: webtest@lists.canoo.com
>>>> Subject: Re: [Webtest] AJAX Support
>>>> Date: Wed, 4 Apr 2007 06:05:56 -0700 (PDT)
>>>>
>>>>
>>>>> Hi,
>>>>>
>>>>> I think that you have some classpath problem and that an
>>>>> older version of htmlunit is used because in htmlunit 1.11
>>>>> (the one now provided with WebTest) no
>>>>> NullPointerException can occur at line 102 of
>>>>> OptionsArray.
>>>>>
>>>>> Marc.
>>>>>
>>>>>
>>>>> uhmm@1234.sk wrote:
>>>>>
>>>>>> Hey there,
>>>>>> I've been looking around internet for ajax support in
>>>>>> webtest, but
>>>>>> haven't found anything what would help me. Hope people
>>>>>> here can...
>>>>>>
>>>>>> I have school example of ajax usage. 2 dropdowns, first
>>>>>> one is
>>>>>> changed, second one is updated. How shall I create test
>>>>>> steps?
>>>>>>
>>>>>> Easy it may seem, but it's not. Here is my try:
>>>>>>
>>>>>> <setSelectField
>>>>>> description="Select offering type"
>>>>>> htmlid="fOfferingType"
>>>>>> text="Application Support"
>>>>>> />
>>>>>> <sleep description="12s pause" seconds="12" />
>>>>>> <setSelectField
>>>>>> description="Select offering subtype"
>>>>>> htmlid="fOfferingSubtype"
>>>>>> value="Other"
>>>>>> />
>>>>>>
>>>>>> Errors I'm getting:
>>>>>> [setSelectField] INFO (com.canoo.webtest.steps.Step) -
>>>>>>
>>>>>>>>>> Start
>>>>>>>>>>
>>>>>> Step: setSelectField "Select offering type" (13/15)
>>>>>> [sleep] java.lang.NullPointerException
>>>>>> [sleep] at
>>>>>>
>>>>>>
>>>>> com.gargoylesoftware.htmlunit.javascript.OptionsArray.get(
>>>>>
>>>>>> OptionsArray.java:102) [sleep] at
>>>>>>
>>>>>>
>>>>> org.mozilla.javascript.ScriptableObject.getProperty(Script
>>>>>
>>>>>> ableObject.java:1343) [sleep] at
>>>>>>
>>>>>>
>>>>> org.mozilla.javascript.ScriptRuntime.getObjectElem(ScriptR
>>>>>
>>>>>> untime.java:1304) [sleep] at
>>>>>>
>>>>>>
>>>>> org.mozilla.javascript.ScriptRuntime.getObjectElem(ScriptR
>>>>>
>>>>>> untime.java:1288) [sleep] at
>>>>>>
>>>>>>
>>>>> org.mozilla.javascript.Interpreter.interpretLoop(Interpret
>>>>>
>>>>>> er.java(Compiled Code))
>>>>>> [sleep] at
>>>>>>
>>>>>>
>>>>> org.mozilla.javascript.Interpreter.interpret(Interpreter.j
>>>>>
>>>>>> ava:2251) [sleep] at
>>>>>>
>>>>>>
>>>>> org.mozilla.javascript.InterpretedFunction.call(Interprete
>>>>>
>>>>>> dFunction.java:161) [sleep] at
>>>>>>
>>>>>>
>>>>> org.mozilla.javascript.ContextFactory.doTopCall(ContextFac
>>>>>
>>>>>> tory.java:340) [sleep] at
>>>>>>
>>>>>>
>>>>> com.gargoylesoftware.htmlunit.javascript.HtmlUnitContextFa
>>>>>
>>>>>> ctory.doTopCall(HtmlUnitContextFactory.java:151)
>>>>>> [sleep] at
>>>>>>
>>>>> org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRunti
>>>>>
>>>>>> me.java:2758) [sleep] at
>>>>>>
>>>>>>
>>>>> org.mozilla.javascript.InterpretedFunction.call(Interprete
>>>>>
>>>>>> dFunction.java:159) [sleep] at
>>>>>>
>>>>>>
>>>>> com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine.
>>>>>
>>>>>> callFunction(JavaScriptEngine.java:363) [sleep]
>>>>>> at
>>>>>>
>>>>> com.gargoylesoftware.htmlunit.javascript.host.XMLHttpReque
>>>>>
>>>>>> st.setState(XMLHttpRequest.java:145) [sleep] at
>>>>>>
>>>>>>
>>>>> com.gargoylesoftware.htmlunit.javascript.host.XMLHttpReque
>>>>>
>>>>>> st.doSend(XMLHttpRequest.java:375) [sleep] at
>>>>>>
>>>>>>
>>>>> com.gargoylesoftware.htmlunit.javascript.host.XMLHttpReque
>>>>>
>>>>>> st.access$000(XMLHttpRequest.java:72) [sleep] at
>>>>>>
>>>>>>
>>>>> com.gargoylesoftware.htmlunit.javascript.host.XMLHttpReque
>>>>>
>>>>>> st$1.run(XMLHttpRequest.java:328) [sleep] at
>>>>>> java.lang.Thread.run(Thread.java:570) [sleep] at
>>>>>>
>>>>>>
>>>>> com.gargoylesoftware.htmlunit.ThreadManager$1.run(ThreadMa
>>>>>
>>>>>> nager.java:118) [setSelectField] INFO
>>>>>> (com.canoo.webtest.steps.Step) - >>>> Start
>>>>>> Step: setSelectField "Select offering subtype" (15/15)
>>>>>> [setSelectField] INFO (com.canoo.webtest.steps.Step) -
>>>>>> Running with:
>>>>>> Canoo Webtest: R_1537.
>>>>>> [setSelectField] INFO (com.canoo.webtest.steps.Step) -
>>>>>> Exception
>>>>>> thrown from this class:
>>>>>> com.canoo.webtest.engine.StepFailedException
>>>>>> [setSelectField] INFO (com.canoo.webtest.steps.Step) -
>>>>>> Message was:
>>>>>> No option found matching criteria in select
>>>>>> HtmlSelect[<select
>>>>>> name="fOfferingSubtype" id="fOfferingSubtype"
>>>>>> class="body-text-small "
>>>>>> onchange="showRelevantCountries();">]
>>>>>> INFO (com.canoo.webtest.steps.Step) - Running with:
>>>>>> Canoo Webtest: R_1537.
>>>>>> INFO (com.canoo.webtest.steps.Step) - Exception thrown
>>>>>> from this
>>>>>> class: com.canoo.webtest.engine.StepFailedException
>>>>>> INFO (com.canoo.webtest.steps.Step) - Message was: No
>>>>>> option found
>>>>>> matching criteria in select HtmlSelect[<select
>>>>>> name="fOfferingSubtype"
>>>>>> id="fOfferingSubtype" class="body-text-small "
>>>>>> onchange="showRelevantCountries();">]
>>>>>>
>>>>>>
>>>>>> What is wrong? As you can see I have the latest Webtest
>>>>>> revision with
>>>>>> latest HtmlUnit...
>>>>>> Exception coming out of sleep?
>>>>>>
>>>>>> Your help is very appreciated!
>>>>>> _______________________________________________
>>>>>> WebTest mailing list
>>>>>> WebTest@lists.canoo.com
>>>>>> http://lists.canoo.com/mailman/listinfo/webtest
>>>>>>
>>>>>>
>>>>>>
>>>>> --
>>>>> View this message in context:
>>>>> http://www.nabble.com/AJAX-Support-tf3525274.html#a9836506
>>>>> Sent from the WebTest mailing list archive at Nabble.com.
>>>>>
>>>>> _______________________________________________
>>>>> WebTest mailing list
>>>>> WebTest@lists.canoo.com
>>>>> http://lists.canoo.com/mailman/listinfo/webtest
>>>>>
>>>> _______________________________________________
>>>> WebTest mailing list
>>>> WebTest@lists.canoo.com
>>>> http://lists.canoo.com/mailman/listinfo/webtest
>>>>
>>>>
>> MG> _______________________________________________
>> MG> WebTest mailing list
>> MG> WebTest@lists.canoo.com
>> MG> http://lists.canoo.com/mailman/listinfo/webtest
>>
>>
>> _______________________________________________
>> WebTest mailing list
>> WebTest@lists.canoo.com
>> http://lists.canoo.com/mailman/listinfo/webtest
>>
>>
>
> _______________________________________________
> WebTest mailing list
> WebTest@lists.canoo.com
> http://lists.canoo.com/mailman/listinfo/webtest
>
>
>
>