But the json parse error is an issue there, I will look into it.

Thanks for reporting this.

Jian

On Tue, Aug 31, 2010 at 1:25 PM, Jian Fang <[email protected]> wrote:

> Hi Jade,
>
> Why you need to use List for a selector? Shouldn't the Selector object
> satisfy your need?
> That is to say, your UI module could be like
>
>                 ui.Form(uid: "DegreeInformationForm", clocator: [tag:
> "form", method: "post", action: "${postAction}", class:
> "ds-interactive-divview-form", id: "aspect_vireo_admin_View_div_view-form"])
> {
>              Selector(uid: "degree", clocator:
> [id:"aspect_vireo_admin_View_field_degree" ]
> }
>
> Then you could call selectByLabel, selectByValue, or selectByIndex.
>
> Thanks,
>
> Jian
>
>
>
> On Mon, Aug 30, 2010 at 12:24 PM, Jade <[email protected]> wrote:
>
>> Hi,
>>
>> We have an ajax powered list that is clickable. In order to manipulate
>> the list, the user first selects it. This replaces the "fake HTML"
>> with select list HTML.
>>
>> However, the list has a json parse error until I remove the respond:
>> ["click"] option. But, then the list cannot be clicked and manipulated
>> in the code.
>>
>> Here's the module as I'd like to define it:
>> String postAction = "\"${VireoTestConfig.getWebApp()}/vireo/admin/
>> detail?update=true\""
>>
>>        public void defineModule() {
>>                ui.Form(uid: "DegreeInformationForm", clocator: [tag:
>> "form",
>> method: "post", action: "${postAction}", class: "ds-interactive-div
>> view-form", id: "aspect_vireo_admin_View_div_view-form"]) {
>>                        List(uid: "degree", clocator: [tag: "select", id:
>> "aspect_vireo_admin_View_field_degree"], separator: "option", respond:
>> ["click"]) {
>>                                Container(uid: "{all}", clocator: [:])
>>                        }
>>                }
>>
>>
>> ERROR: Command execution failure. Please search the Tellurium User
>> Group at http://groups.google.com/group/tellurium-users for error
>> details from the log window.  The error message is: JSON.parse
>>
>> com.thoughtworks.selenium.HttpCommandProcessor.throwAssertionFailureExceptionOrError(HttpCommandProcessor.java:
>> 97)
>>
>>
>> com.thoughtworks.selenium.HttpCommandProcessor.doCommand(HttpCommandProcessor.java:
>> 91)
>>                sun.reflect.GeneratedMethodAccessor62.invoke(Unknown
>> Source)
>>
>>
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
>> 43)
>>                java.lang.reflect.Method.invoke(Method.java:616)
>>                org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite
>> $PojoCachedMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:
>> 229)
>>
>>
>> org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:
>> 52)
>>
>>
>> org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:
>> 129)
>>
>>
>> org.telluriumsource.component.connector.CustomSelenium.getBundleResponse(CustomSelenium.groovy:
>> 257)
>>                sun.reflect.GeneratedMethodAccessor61.invoke(Unknown
>> Source)
>>
>>
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
>> 43)
>>                java.lang.reflect.Method.invoke(Method.java:616)
>>
>>  org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:
>> 88)
>>                groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
>>
>>  groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1058)
>>
>>  groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:886)
>>
>> groovy.lang.DelegatingMetaClass.invokeMethod(DelegatingMetaClass.java:
>> 149)
>>                groovy.lang.MetaObjectProtocol$invokeMethod.call(Unknown
>> Source)
>>
>>
>> org.telluriumsource.component.dispatch.Dispatcher.methodMissing(Dispatcher.groovy:
>> 56)
>>                sun.reflect.GeneratedMethodAccessor60.invoke(Unknown
>> Source)
>>
>>
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
>> 43)
>>                java.lang.reflect.Method.invoke(Method.java:616)
>>
>>  org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:
>> 88)
>>
>>  groovy.lang.MetaClassImpl.invokeMissingMethod(MetaClassImpl.java:
>> 813)
>>
>>  groovy.lang.MetaClassImpl.invokePropertyOrMissing(MetaClassImpl.java:
>> 1107)
>>
>>  groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1060)
>>
>>  groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:886)
>>
>>
>> org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:
>> 39)
>>
>>
>> org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:
>> 129)
>>
>>
>> org.telluriumsource.component.bundle.BundleProcessor.passBundledCommand(BundleProcessor.groovy:
>> 322)
>>                org.telluriumsource.component.bundle.BundleProcessor
>> $passBundledCommand.callCurrent(Unknown Source)
>>
>>
>> org.telluriumsource.component.bundle.BundleProcessor.process(BundleProcessor.groovy:
>> 414)
>>                org.telluriumsource.component.bundle.BundleProcessor
>> $process.callCurrent(Unknown Source)
>>
>>
>> org.telluriumsource.component.bundle.BundleProcessor.methodMissing(BundleProcessor.groovy:
>> 427)
>>                sun.reflect.GeneratedMethodAccessor54.invoke(Unknown
>> Source)
>>
>>
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
>> 43)
>>                java.lang.reflect.Method.invoke(Method.java:616)
>>
>>  org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:
>> 88)
>>
>>  groovy.lang.MetaClassImpl.invokeMissingMethod(MetaClassImpl.java:
>> 813)
>>
>>  groovy.lang.MetaClassImpl.invokePropertyOrMissing(MetaClassImpl.java:
>> 1107)
>>
>>  groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1060)
>>
>>  groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:886)
>>
>> groovy.lang.DelegatingMetaClass.invokeMethod(DelegatingMetaClass.java:
>> 149)
>>                groovy.lang.MetaObjectProtocol$invokeMethod.call(Unknown
>> Source)
>>
>>
>> org.telluriumsource.component.custom.Extension.methodMissing(Extension.groovy:
>> 20)
>>                sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
>> 57)
>>
>>
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
>> 43)
>>                java.lang.reflect.Method.invoke(Method.java:616)
>>
>>  org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:
>> 88)
>>
>>  groovy.lang.MetaClassImpl.invokeMissingMethod(MetaClassImpl.java:
>> 813)
>>
>>  groovy.lang.MetaClassImpl.invokePropertyOrMissing(MetaClassImpl.java:
>> 1107)
>>
>>  groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1060)
>>
>>  groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:886)
>>
>>
>> org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:
>> 39)
>>
>>
>> org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:
>> 40)
>>
>>
>> org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:
>> 117)
>>
>>
>> org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:
>> 129)
>>
>>
>> org.telluriumsource.dsl.BaseDslContext.getUiModuleValidationResult(BaseDslContext.groovy:
>> 1417)
>>                org.telluriumsource.dsl.BaseDslContext
>> $getUiModuleValidationResult.callCurrent(Unknown Source)
>>
>>
>> org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:
>> 44)
>>
>>
>> org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:
>> 143)
>>
>>
>> org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:
>> 151)
>>
>> org.telluriumsource.dsl.BaseDslContext.validate(BaseDslContext.groovy:
>> 1404)
>>                sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
>> 57)
>>
>>
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
>> 43)
>>                java.lang.reflect.Method.invoke(Method.java:616)
>>
>>  org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:
>> 88)
>>                groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
>>
>>
>> org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:
>> 362)
>>
>>  groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:886)
>>
>>
>> org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:
>> 66)
>>
>>
>> org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:
>> 44)
>>
>>
>> org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:
>> 143)
>>
>>
>> org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:
>> 151)
>>
>> org.tdl.vireo.webtest.datadriventests.module.admin.DegreeInformationModule
>> $_defineModule_closure14.doCall(DegreeInformationModule.groovy:128)
>>                sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>
>> Here's the output of dump:
>>
>> DegreeInformationForm: jquery=#aspect_vireo_admin_View_div_view-form
>> DegreeInformationForm.degree:
>> jquery=#aspect_vireo_admin_View_field_degree
>> DegreeInformationForm.degree[2]:
>> jquery=#aspect_vireo_admin_View_field_degree > option:eq(1)
>> -------------------------------------------------------
>> Here's the output of toString:
>>
>> [{"obj":{"uid":"DegreeInformationForm","locator":
>> {"tag":"form","attributes":{"id":"aspect_vireo_admin_View_div_view-
>> form","action":"xmlui/vireo/admin/detail?update=true","class":"ds-
>> interactive-div view-
>> form","method":"post"}},"uiType":"Form","metaData":
>>
>> {"id":"DegreeInformationForm","type":"UiObject"}},"key":"DegreeInformationForm"},
>> {"obj":{"uid":"degree","locator":{"tag":"select","attributes":
>> {"id":"aspect_vireo_admin_View_field_degree"}},"events":
>> [Ljava.lang.String;@58f41393
>> ,"uiType":"List","separator":"option","metaData":
>> {"id":"degree","type":"UiObject"}},"key":"DegreeInformationForm.degree"},
>> {"obj":{"uid":"_all","locator":{},"uiType":"Container","metaData":
>> {"id":"_all","index":
>>
>> {"value":"all","type":"VAL"},"type":"List"}},"key":"DegreeInformationForm.degree._all"}]
>>
>> Diagnosis Result for DegreeInformationForm.degree
>>
>> When I remove the respond: ["click"] code, then the list can't be
>> clicked and the list size is 0:
>>
>> 1)
>>
>> testDataDriven(org.tdl.vireo.webtest.datadriventests.test.admin.DegreeInformationTest)
>> java.lang.AssertionError: 1 > list, DegreeInformationForm.degree,
>> size: 0
>>        at org.junit.Assert.fail(Assert.java:91)
>>        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>        at
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
>> 57)
>>        at
>>
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
>> 43)
>>        at java.lang.reflect.Method.invoke(Method.java:616)
>>        at
>> org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:
>> 88)
>>        at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
>>        at org.codehaus.groovy.runtime.callsite.StaticMetaMethodSite
>> $StaticMetaMethodSiteNoUnwrap.invoke(StaticMetaMethodSite.java:130)
>>        at
>>
>> org.codehaus.groovy.runtime.callsite.StaticMetaMethodSite.callStatic(StaticMetaMethodSite.java:
>> 99)
>>        at
>>
>> org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallStatic(CallSiteArray.java:
>> 48)
>>        at
>>
>> org.codehaus.groovy.runtime.callsite.AbstractCallSite.callStatic(AbstractCallSite.java:
>> 167)
>>        at
>>
>> org.codehaus.groovy.runtime.callsite.AbstractCallSite.callStatic(AbstractCallSite.java:
>> 175)
>>        at
>>
>> org.tdl.webtest.utils.TestingUtils.selectClickableOption(TestingUtils.groovy:
>> 112)
>>        at org.tdl.webtest.utils.TestingUtils
>> $selectClickableOption.call(Unknown Source)
>>        at
>>
>> org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:
>> 40)
>>        at
>>
>> org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:
>> 117)
>>        at
>>
>> org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:
>> 137)
>>        at
>> org.tdl.vireo.webtest.datadriventests.module.admin.DegreeInformationModule
>> $_defineModule_closure15.doCall(DegreeInformationModule.groovy:151)
>>
>> Here's the piece of the code that fails:
>> public static void selectClickableOption(final String listUid,
>>        final DslContext module, final int indx, boolean shouldFail) {
>>
>>                String elementId;
>>                // With Ajax, the module has to be clicked on so the uid is
>> found.
>>                //module.click listUid
>>
>>                int len = module.getListSizeBySelector(listUid)
>>                if (indx > len) {
>>                        fail("${indx} > list, ${listUid}, size: ${len}")
>>                }
>>
>>
>> Jade
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "tellurium-users" group.
>> To post to this group, send email to [email protected].
>> To unsubscribe from this group, send email to
>> [email protected]<tellurium-users%[email protected]>
>> .
>> For more options, visit this group at
>> http://groups.google.com/group/tellurium-users?hl=en.
>>
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"tellurium-users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/tellurium-users?hl=en.

Reply via email to