Hi Jian,
The fix allows my form to validate but I'm running into problems
manipulating the lists. I think that the problems that I'm having may
be caused by Ajax since the select list is only selectable once the
user clicks on it. I tried out the 0.8.0 version with the List().
I get this error No signature of method:
org.telluriumsource.ui.object.UiObject.getSelectedValue() is
applicable for argument types: (org.telluriumsource.dsl.BaseDslContext
$_getSelectedValue_closure32) values:
[org.telluriumsource.dsl.BaseDslContext
$_getselectedvalue_closur...@94b318]
Here's the json for the college list:
{"obj":{"uid":"college","locator":{"tag":"ol","attributes":
{"id":"aspect_vireo_admin_View_field_college"}},"events":
["click"],"uiType":"List","separator":"li","metaData":
{"id":"college","type":"UiObject"}},"key":"DegreeInformationForm.college"},
{"obj":{"uid":"_all","locator":{},"uiType":"Container","metaData":
{"id":"_all","index":
{"value":"all","type":"VAL"},"type":"List"}},"key":"DegreeInformationForm.college._all"}
and the module def:
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"]) {
InputBox(uid: "committee_member_2", clocator: [tag:
"input", id:
"aspect_vireo_admin_View_field_committee-member-2", type: "text"],
respond: ["click"])
InputBox(uid: "committee_member_1", clocator: [tag:
"input", id:
"aspect_vireo_admin_View_field_committee-member-1", type: "text"],
respond: ["click"])
List(uid: "degree", clocator: [tag: "ol", id:
"aspect_vireo_admin_View_field_degree"], separator: "li", respond:
["click"]) {
Container(uid: "{all}", clocator: [:])
}
InputBox(uid: "school", clocator: [tag: "input", id:
"aspect_vireo_admin_View_field_school", type: "text"], respond:
["click"])
InputBox(uid: "committee_email", clocator: [tag:
"input", id:
"aspect_vireo_admin_View_field_committee-email", type: "text"],
respond: ["click"])
InputBox(uid: "department", clocator: [tag: "input", id:
"aspect_vireo_admin_View_field_department", type: "text"], respond:
["click"])
List(uid: "college", clocator: [tag: "ol", id:
"aspect_vireo_admin_View_field_college"], separator: "li", respond:
["click"]) {
Container(uid: "{all}", clocator: [:])
}
InputBox(uid: "committee_member_3", clocator: [tag:
"input", id:
"aspect_vireo_admin_View_field_committee-member-3", type: "text"],
respond: ["click"])
InputBox(uid: "discipline", clocator: [tag: "input", id:
"aspect_vireo_admin_View_field_discipline", type: "text"], respond:
["click"])
InputBox(uid: "semester", clocator: [tag: "input", id:
"aspect_vireo_admin_View_field_semester", type: "text"], respond:
["click"])
List(uid: "degreeLevel", clocator: [tag: "ol", id:
"aspect_vireo_admin_View_field_degreeLevel"], separator: "li",
respond: ["click"]) {
Container(uid: "{all}", clocator: [:])
}
}
I'm using the following jars:
tellurium-core-0.8.0-20100831.183952-27.jar
tellurium-udl-0.8.0-20100823.183714-19.jar
selenium-server-1.0.1-te3.jar
Do you know why the call to getSelectedValue() is failing for the
list?
BTW, I changed the List to a Selector in the module definition (and
the tag to "select" and the separator to "option" but then I get this
exception:
ERROR: Specified element is not a Select (has no options)
The problem is the college is an ordered list until it's selected,
then it becomes a select list.
UI Module DegreeInformationForm:
[{"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"}},{"obj":
{"uid":"college","locator":{"tag":"ol","attributes":
{"id":"aspect_vireo_admin_View_field_college"}},"events":
["click"],"uiType":"Selector","metaData":
{"id":"college","type":"UiObject"}},"key":"DegreeInformationForm.college"}]
-----
Diagnosis Result for DegreeInformationForm.college
-------------------------------------------------------
Matching count: 1
Match Elements:
--- Element 1 -->
<ol alt="fakefield_18" title=""
id="aspect_vireo_admin_View_field_college" class="fakeField fakeSelect
ds-select-field college editable"><li class="hidden" id="">none</
li><li class="selected" id="Information">Information</li><li
class="hidden" id="Test College4">Test College4</li><li class="hidden"
id="Test College3">Test College3</li><li class="hidden" id="Test
College2">Test College2</li><li class="hidden" id="Test College1">Test
College1</li><li class="hidden" id="CS">CS</li></ol>
-------
The diagnosis is finding the fake tag which matches what firefox sees
but it doesn't match the page source:
When I inspect the HTML for the select element in firefox, the list is
hidden:
<ol class="fakeField fakeSelect ds-select-field college editable"
id="aspect_vireo_admin_View_field_college" title=""
alt="fakefield_18"><li id="" class="hidden">none</li><li
id="Information" class="selected">Information</li><li id="Test
College4" class="hidden">Test College4</li><li id="Test College3"
class="hidden">Test College3</li><li id="Test College2"
class="hidden">Test College2</li><li id="Test College1"
class="hidden">Test College1</li><li id="CS" class="hidden">CS</li></
ol>
However, the html page source for the same select list is:
<select id="aspect_vireo_admin_View_field_college" class="ds-select-
field college editable" name="college">
<option value="">none</option>
<option value="Information" selected="selected">Information</option>
<option value="Test College4">Test College4</option>
<option value="Test College3">Test College3</option>
<option value="Test College2">Test College2</option>
<option value="Test College1">Test College1</option>
<option value="CS">CS</option>
</select>
Jade
On Aug 31, 2:59 pm, Jade <[email protected]> wrote:
> Thanks very much Jian for the quick fix! I'll try it out when I'm back
> in the office on Thurs.
>
> Jade
>
> I'm having trouble finding the latest
>
> On Aug 31, 1: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/tellur...
>
> > 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 athttp://groups.google.com/group/tellurium-usersforerror
> > >>>> details from the log window. The error message is: JSON.parse
>
> > >>>> com.thoughtworks.selenium.HttpCommandProcessor.throwAssertionFailureExcepti
> > >>>> onOrError(HttpCommandProcessor.java:
> > >>>> 97)
>
> > >>>> com.thoughtworks.selenium.HttpCommandProcessor.doCommand(HttpCommandProcess
> > >>>> or.java:
> > >>>> 91)
> > >>>> sun.reflect.GeneratedMethodAccessor62.invoke(Unknown
> > >>>> Source)
>
> > >>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImp
> > >>>> l.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(PojoMetaMethod
> > >>>> Site.java:
> > >>>> 52)
>
> > >>>> org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite
> > >>>> .java:
> > >>>> 129)
>
> > >>>> org.telluriumsource.component.connector.CustomSelenium.getBundleResponse(Cu
> > >>>> stomSelenium.groovy:
> > >>>> 257)
> > >>>> sun.reflect.GeneratedMethodAccessor61.invoke(Unknown
> > >>>> Source)
>
> > >>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImp
> > >>>> l.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(DelegatingMethodAccessorImp
> > >>>> l.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(PogoMetaClassSi
> > >>>> te.java:
> > >>>> 39)
>
> > >>>> org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite
> > >>>> .java:
> > >>>> 129)
>
> > >>>> org.telluriumsource.component.bundle.BundleProcessor.passBundledCommand(Bun
> > >>>> dleProcessor.groovy:
> > >>>> 322)
> > >>>> org.telluriumsource.component.bundle.BundleProcessor
> > >>>> $passBundledCommand.callCurrent(Unknown Source)
>
> > >>>> org.telluriumsource.component.bundle.BundleProcessor.process(BundleProcesso
> > >>>> r.groovy:
> > >>>> 414)
> > >>>> org.telluriumsource.component.bundle.BundleProcessor
> > >>>> $process.callCurrent(Unknown Source)
>
> > >>>> org.telluriumsource.component.bundle.BundleProcessor.methodMissing(BundlePr
> > >>>> ocessor.groovy:
> > >>>> 427)
> > >>>> sun.reflect.GeneratedMethodAccessor54.invoke(Unknown
> > >>>> Source)
>
> > >>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImp
> > >>>> l.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.groo
> > >>>> vy:
> > >>>> 20)
> > >>>> sun.reflect.NativeMethodAccessorImpl.invoke0(Native
> > >>>> Method)
>
> > >>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
> > >>>> 57)
>
> > >>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImp
> > >>>> l.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(PogoMetaClassSi
> > >>>> te.java:
> > >>>> 39)
>
> > >>>> org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArra
> > >>>> y.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(BaseDslC
> > >>>> ontext.groovy:
> > >>>> 1417)
> > >>>> org.telluriumsource.dsl.BaseDslContext
> > >>>> $getUiModuleValidationResult.callCurrent(Unknown Source)
>
> > >>>> org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallS
> > >>>> iteArray.java:
> > >>>> 44)
>
> > >>>> org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractC
> > >>>> allSite.java:
> > >>>> 143)
>
> > >>>> org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractC
> > >>>> allSite.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(DelegatingMethodAccessorImp
> > >>>> l.java:
>
> ...
>
> read more »
--
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.