Look a bit closer and I see the problem here: "events":[Ljava.lang.String;@58f41393
Seems the toJSON method in the List object has a bug there. I will fix it soon. Thanks again, Jian On Tue, Aug 31, 2010 at 1:49 PM, Jian Fang <[email protected]> wrote: > 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.
