I must be tired from the week. The 'i' and 'j' are hard coded into the string. Fixed the problem. Sorry for the trouble.
Manoj > >From: Manoj Chavan <[email protected]> >To: [email protected] >Sent: Fri, October 30, 2009 4:22:34 PM >Subject: Re: Nested List - Module def question? > > >I wrote a method in the UI def but am getting exception. > >public int getTabCount(){ > return getListSize("cuponmod.mod.body.data") >} > >public int getCouponCount(int x){ > return getListSize("cuponmod.mod.body.data["+ x +"].list") >} > >I call it like this > >public void testCuponModule(){ > for(int i= 1; i <= yshp.getTabCount(); i++){ > for(int j= 1; j <= yshp.getCouponCount(i); j++){ > > org.junit.Assert.assertTrue(yshp.isElementPresent("cuponmod.mod.body.data[i].list[j].merchant")); > > > org.junit.Assert.assertTrue(yshp.isElementPresent("cuponmod.mod.body.data[i].list[j].title")); > > org.junit.Assert.assertTrue(yshp.isElementPresent("cuponmod.mod.body.data[i].list[j].exp")); > } > } > } > > > >I am getting the following exception. Is the syntax correct in the method? > >java.lang.NumberFormatException: For input string: "i" > at java.lang.NumberFormatException.forInputString(Unknown Source) > at java.lang.Integer.parseInt(Unknown Source) > at java.lang.Integer.parseInt(Unknown Source) > at java_lang_Integer$parseInt.call(Unknown Source) > at > org.tellurium.object.List.walkTo(List.groovy:221) > at org.tellurium.object.List$walkTo.call(Unknown Source) > at > org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:40) > at org.tellurium.object.Container$walkTo.call(Unknown Source) > at org.tellurium.object.Container.walkTo(Container.groovy:97) > at org.tellurium.object.Container$walkTo.call(Unknown Source) > at org.tellurium.object.Container.walkTo(Container.groovy:97) > at org.tellurium.object.Container$walkTo.call(Unknown Source) > at > org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:40) > at org.tellurium.object.List$walkTo.call(Unknown Source) > at org.tellurium.object.Container.walkTo(Container.groovy:97) > at > org.tellurium.object.Container$walkTo.call(Unknown Source) > at org.tellurium.dsl.UiDslParser.walkTo(UiDslParser.groovy:68) > at org.tellurium.dsl.UiDslParser$walkTo.call(Unknown Source) > at > org.tellurium.dsl.BaseDslContext.walkToWithException(BaseDslContext.groovy:207) > at > org.tellurium.dsl.BaseDslContext$walkToWithException.callCurrent(Unknown > Source) > at > org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:44) > at > org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:143) > at > org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:155) > at > org.tellurium.dsl.BaseDslContext.isElementPresent(BaseDslContext.groovy:459) > at > com.yahoo.shopping.TestHomePage.testCuponModule(TestHomePage.java:37) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) > at java.lang.reflect.Method.invoke(Unknown Source) > at org.junit.internal.runners.TestMethod.invoke(TestMethod.java:59) > at > org.junit.internal.runners.MethodRoadie.runTestMethod(MethodRoadie.java:98) > at org.junit.internal.runners.MethodRoadie$2.run(MethodRoadie.java:79) > at > org.junit.internal.runners.MethodRoadie.runBeforesThenTestThenAfters(MethodRoadie.java:87) > at org.junit.internal.runners.MethodRoadie.runTest(MethodRoadie.java:77) > at > org.junit.internal.runners.MethodRoadie.run(MethodRoadie.java:42) > at > org.junit.internal.runners.JUnit4ClassRunner.invokeTestMethod(JUnit4ClassRunner.java:88) > at > org.junit.internal.runners.JUnit4ClassRunner.runMethods(JUnit4ClassRunner.java:51) > at > org.junit.internal.runners.JUnit4ClassRunner$1.run(JUnit4ClassRunner.java:44) > at > org.junit.internal.runners.ClassRoadie.runUnprotected(ClassRoadie.java:27) > at org.junit.internal.runners.ClassRoadie.runProtected(ClassRoadie.java:37) > at > org.junit.internal.runners.JUnit4ClassRunner.run(JUnit4ClassRunner.java:42) > at > org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:46) > at > org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) > at > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) > at > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) > at > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) > at > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197) > > > > >> >>From: Manoj Chavan <[email protected]> >>To: [email protected] >>Sent: Fri, October 30, 2009 3:52:25 PM >>Subject: Re: Nested List - Module def question? >> >> >>Thanks. That worked. The more and more I use Tellurium am falling ins love >>with it >>and am advocating its use in my group :) keep up the great work. >> >>Regards, >> >>Manoj >> >> >>> >>>From: Jian Fang <[email protected]> >>>To: [email protected] >>>Sent: Fri, October 30, 2009 3:46:10 PM >>>Subject: Re: Nested List - Module def question? >>> >>>>>>body.data[2].list[1].merchant >>> >>> >>>On Fri, Oct 30, 2009 at 6:43 PM, Manoj Chavan <[email protected]> wrote: >>> >>>So how would i get the value ? >>>> >>>>body.data[2].list[1].merchant ? OR >>>>body.data[2].all.list[1].merchant? >>>> >>>>A little confusing. Thank you for the pointers. >>>> >>>>Regards, >>>> >>>>Manoj >>>> >>>> >>>>> >>>>>From: Jian Fang <[email protected]> >>>>>To: [email protected] >>>>>Sent: Fri, October 30, 2009 3:32:19 PM >>>>>Subject: Re: Nested List - Module def question? >>>>> >>>>> >>>>>>>>>>Up to now, List and Table only support index as in template. We do >>>>>>>>>>have plan to support more general template definitions, but it takes >>>>>>>>>>some time to achieve that because that requires fundamental changes >>>>>>>>>>to the List and the Table object. >>>>> >>>>>For your case, you should use "all" as the template uid inside the List, >>>>>i.e., >>>>> >>>>>>>>>>Container(uid:"body", clocator:[tag:"div", class:"bd"]){ >>>>>>>>>> List(uid: "data", clocator: [tag: "div", >>>>>>>>>> class:"scrolling"]){ >>>>>>>>>> Container(uid: "all", clocator: [tag:"div", >>>>>>>>>> class:"tabcont"]){ >>>>>>>>>> List(uid: "list", clocator: [tag: "ul"], >>>>>>>>>> separator: "li"){ >>>>>>>>>> Container(uid:"all", clocator:[:]){ >>>>>>>>>> UrlLink(uid: "merchant", clocator: >>>>>>>>>> [tag: "a" , class:"merchant"]) >>>>>>>>>> UrlLink(uid: "title", clocator: [tag: >>>>>>>>>> "a" , class:"title"]) >>>>>>>>>> UrlLink(uid: "exp", clocator: [tag: >>>>>>>>>> "a" , class:"exp"]) >>>>>>>>>> } >>>>>>>>>> } >>>>>>>>>> } >>>>>>>>>> } >>>>>>>>>> >>>>>Please let us know if this helps or not. >>>>> >>>>>Thanks, >>>>> >>>>>Jian >>>>> >>>>> >>>>>On Fri, Oct 30, 2009 at 5:17 PM, Manoj Chavan <[email protected]> >>>>>wrote: >>>>> >>>>> >>>>>>>>>>>>Hi, >>>>>> >>>>>>>>>>>> I have the following HTML. and the related Module Def I scripted. >>>>>>>>>>>> Wanted to validate >>>>>>>>>>>>it. If I try "getValue("body.data.tabs[2].list.details[1].merchant" >>>>>>>>>>>>should return "Merchant21". >>>>>>>>>>>>Is my syntax correct? Is it possible to have this type of nested >>>>>>>>>>>>list structure. I need to >>>>>>>>>>>>use this cause the list is dynamic and can change anytime. >>>>>> >>>>>>>>>>>>Regards, >>>>>> >>>>>>>>>>>>Manoj >>>>>> >>>>>> >>>>>>>>>>>><div class="bd"> >>>>>>>>>>>> <div class="scrolling" style="margin-left: 0px;"> >>>>>>>>>>>> <div class="tabcont selected"> >>>>>>>>>>>> <ul> >>>>>>>>>>>> <li> >>>>>>>>>>>> <p class="merchant">Merchant11</p> >>>>>>>>>>>> <p class="title">Title11</p> >>>>>>>>>>>> <p class="exp">12/30/09</p> >>>>>>>>>>>> </li> >>>>>>>>>>>> <li></li> >>>>>>>>>>>> <li></li> >>>>>>>>>>>> <li></li> >>>>>>>>>>>> </ul> >>>>>>>>>>>> </div> >>>>>>>>>>>> <div class="tabcont"> >>>>>>>>>>>> <ul> >>>>>>>>>>>> <li> >>>>>>>>>>>> <p class="merchant">Merchant21</p> >>>>>>>>>>>> <p class="title">Title121</p> >>>>>>>>>>>> <p class="exp">12/30/09</p> >>>>>> >>>>>>>>>>>> </li> >>>>>>>>>>>> <li></li> >>>>>>>>>>>> <li></li> >>>>>>>>>>>> <li></li> >>>>>>>>>>>> </ul> >>>>>>>>>>>> </div> >>>>>>>>>>>> <div class="tabcont"> >>>>>>>>>>>> </div> >>>>>>>>>>>> </div> >>>>>>>>>>>></div> >>>>>> >>>>>> >>>>>> >>>>>>>>>>>>Container(uid:"body", clocator:[tag:"div", class:"bd"]){ >>>>>>>>>>>> List(uid: "data", clocator: [tag: "div", >>>>>>>>>>>> class:"scrolling"]){ >>>>>>>>>>>> Container(uid: "tabs", clocator: [tag:"div", >>>>>>>>>>>> class:"tabcont"]){ >>>>>>>>>>>> List(uid: "list", clocator: [tag: "ul"], >>>>>>>>>>>> separator: "li"){ >>>>>>>>>>>> Container(uid:"details", clocator:[:]){ >>>>>>>>>>>> UrlLink(uid: "merchant", clocator: >>>>>>>>>>>> [tag: "a" , class:"merchant"]) >>>>>>>>>>>> UrlLink(uid: "title", clocator: >>>>>>>>>>>> [tag: "a" , class:"title"]) >>>>>>>>>>>> UrlLink(uid: "exp", clocator: [tag: >>>>>>>>>>>> "a" , class:"exp"]) >>>>>>>>>>>> } >>>>>>>>>>>> } >>>>>>>>>>>> } >>>>>>>>>>>> } >>>>>>>>>>>> } >>>>>> >>>>>> >>>>>> >>>>>> >>>>> >>>>> >>>>> >>>> >>>> >>>> >>> >>> >>> >> >> >>> > --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
