Finally got some time to trace the problem. It turned out to be a bug in the
process of appending the
root element if not present. I am going to remove this feature so that it is
required to use the full UIDs
because it is not a good practice anyway to omit the root uid.

I tested and the full uids work fine. Please use full uids instead, i.e.,
"A.AA" and "A.DD" in your case.

Thanks,

Jian

On Sun, Oct 17, 2010 at 2:27 PM, Jian Fang <[email protected]> wrote:

> You better use "A.AA" to reference the UrlLink for AA. The "A." can be
> omitted only if you have one Ui module
> defined. As for why "AA" cannot be found, I need to create a test case and
> see what happened. I will get back to you later.
>
> Thanks,
>
> Jian
>
>
> On Sun, Oct 17, 2010 at 8:03 AM, Ryan <[email protected]> wrote:
>
>> I get the html from the example
>>
>> <ul class="a">
>>        <li>
>>            <A HREF="site?tcid=a"
>>               class="b">AA
>>            </A>
>>        </li>
>>        <li>
>>            <A HREF="site?tcid=b"
>>               class="b">BB
>>            </A>
>>        </li>
>>        <li>
>>            <A HREF="site?;tcid=c"
>>               class="b">CC
>>            </A>
>>        </li>
>>        <li>
>>            <A HREF="site?tcid=d"
>>               class="b">DD
>>            </A>
>>        </li>
>>        <li>
>>            <A HREF="site?tcid=e"
>>               class="b">EE
>>            </A>
>>        </li>
>>        <li>
>>            <A HREF="site?tcid=f"
>>               class="b">FF
>>            </A>
>>        </li>
>>    </ul>
>>
>> then, I use trump to generate the Ui
>>
>> package com.example.template.module
>>
>> import org.telluriumsource.dsl.DslContext;
>>
>> class NoTemplateList extends DslContext{
>>
>>        public void defineUi() {
>>                ui.Container(uid: "A", clocator: [tag: "ul", class: "a"]){
>>                        UrlLink(uid: "AA", clocator: [tag: "a", text: "AA",
>> class: "b"])
>>                        UrlLink(uid: "BB", clocator: [tag: "a", text: "BB",
>> class: "b"])
>>                        UrlLink(uid: "CC", clocator: [tag: "a", text: "CC",
>> class: "b"])
>>                        UrlLink(uid: "DD", clocator: [tag: "a", text: "DD",
>> class: "b"])
>>                        UrlLink(uid: "EE", clocator: [tag: "a", text: "EE",
>> class: "b"])
>>                        UrlLink(uid: "FF", clocator: [tag: "a", text: "FF",
>> class: "b"])
>>                }
>>
>>
>>        }
>>
>>        public void click(uid) {
>>
>>                click("A." + uid)
>>
>>                waitForPageToLoad(10000)
>>        }
>> }
>>
>> then I write the test class:
>>
>> package com.example.template.test;
>>
>> import org.telluriumsource.test.java.TelluriumTestNGTestCase;
>> import org.testng.annotations.BeforeClass;
>> import org.testng.annotations.BeforeMethod;
>> import org.testng.annotations.Test;
>>
>> import com.example.template.module.NoTemplateList;
>>
>> public class NoTemplateListTest extends TelluriumTestNGTestCase{
>>
>>        private static NoTemplateList listUi;
>>
>>        @BeforeClass
>>        public static void initUi() {
>>
>>                listUi = new NoTemplateList();
>>
>>                listUi.defineUi();
>>
>>                connectSeleniumServer();
>>
>>                useCssSelector(true);
>>
>>                useTelluriumEngine(true);
>>
>>                useTrace(true);
>>        }
>>
>>        @BeforeMethod
>>        public void connectUrl() {
>>
>>
>>  connectUrl("file:///C:/Users/Administrator/Desktop/template.html");
>>
>>        }
>>
>>        @Test
>>        public void testAA() {
>> //              useCssSelector(false);
>> //
>> //              listUi.dump("A.AA");
>> //
>> //              String html = listUi.toHTML();
>> //
>> //              System.out.println(html);
>>
>>                listUi.click("AA");
>>        }
>>
>>        @Test
>>        public void testDD() {
>> //              useCssSelector(false);
>> //
>> //              listUi.dump("A.DD");
>> //
>> //              String html = listUi.toHTML();
>> //
>> //              System.out.println(html);
>>
>>                listUi.click("DD");
>>        }
>> }
>>
>> when I run it , I got:
>> PASSED: testDD
>> FAILED: testAA
>> org.telluriumsource.exception.UiObjectNotFoundException: Cannot find
>> UI Object AA
>>        at org.codehaus.groovy.runtime.callsite.ConstructorSite
>> $ConstructorSiteNoUnwrapNoCoerce.callConstructor(ConstructorSite.java:
>> 107)
>>        at
>>
>> org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:
>> 52)
>>        at
>>
>> org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:
>> 192)
>>        at
>>
>> org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:
>> 200)
>>        at
>>
>> org.telluriumsource.dsl.BaseDslContext.walkToWithException(BaseDslContext.groovy:
>> 155)
>>        at org.telluriumsource.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.telluriumsource.dsl.BaseDslContext.click(BaseDslContext.groovy:
>> 166)
>>        at
>>
>> com.example.template.test.NoTemplateListTest.testAA(NoTemplateListTest.java:
>> 47)
>> ... Removed 27 stack frames
>>
>> ===============================================
>>    com.example.template.test.NoTemplateListTest
>>    Tests run: 2, Failures: 1, Skips: 0
>> ===============================================
>>
>>
>> I don't know why " Cannot find UI Object AA" and it can find A.DD, and
>> is there a method I can validate the Ui before I run the test?
>>
>> Thank you.
>>
>> --
>> 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