BTW, if you use 0.8.0 snapshot, the "click" method is available for all UI objects. You don't need to add the respond attribute any more.
On Tue, Aug 31, 2010 at 2:45 PM, Jian Fang <[email protected]> wrote: > Fixed on trunk/core, please update from our Maven repo or download it from: > > > http://maven.kungfuters.org/content/repositories/snapshots/org/telluriumsource/tellurium-core/0.8.0-SNAPSHOT/tellurium-core-0.8.0-20100831.183952-27.jar > > Please let us know if you have any further problems. > > Thanks, > > Jian > > > On Tue, Aug 31, 2010 at 2:24 PM, Jian Fang <[email protected]>wrote: > >> 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.
