Sorry, I thought your problem was resolved since I didn't hear back from you. Do you mind sending me the runtime html source generated from the JSF tags? Also show me your UI module definition for that piece of html. I can wrap up a test case based on the information you provide to debug what was the problem.
Tellurium UI templates are targeted for dynamic grids and we will try our best to help you out. You can chat we me via GMail if I am available on line. Thanks, Jian On Mon, Sep 20, 2010 at 9:09 AM, Eric Gokavi <[email protected]> wrote: > Hello Jian, > > I am still struggling to get this below mentioned Grid Problem right. > I was involved in some other tasks for some days and was away from > Tellurium till today, today i started the POC again but with no success. > > Tellurium as a testing framework, is very suitable for our application. > The only problem is we have lot of girds in our application and we are > facing the dynamic grid problem. > > I request you to please get back to me if you are not getting the exact > problem, if possible for you we can have a WebEx too. > > Request your response soon. > > Thanks, > -Eric. > > > On Tue, Aug 24, 2010 at 6:48 PM, Jian Fang <[email protected]>wrote: > >> The partial match String "*" should be at the beginning of the string, >> i.e., not "helloForm:textCol*" and should be "*helloForm:textCol". >> >> If you only have one tbody tag, the tbody section can be omitted and you >> don't really need the partial matching since the Table is accessed by row >> and column. I would suggest you try the following UI module >> >> >> ui.StandardTable(uid: "HelloFormoutGrid", clocator: [tag: "table", >> id: "helloForm:outGrid"]){ >> InputBox(uid: "{row: all, column: 1}", clocator: [type: >> "text"]) >> } >> >> Thanks, >> >> Jian >> >> On Tue, Aug 24, 2010 at 1:15 AM, Eric Gokavi <[email protected]>wrote: >> >>> Hello, >>> >>> As you had suggested i used the getHTMLSource() method on my grid. >>> I am just posting the results, unfortunately my solution is still not >>> working.. :( >>> The problem i posted in the last post still persists. >>> >>> My JSF Grid code is : >>> ------------------------------------ >>> >>> <h:form id="helloForm"> >>> <h:panelGrid columns="4" border="10" id="outGrid"> >>> <f:facet name="header"> >>> <h:outputText value="Input Box Column"/> >>> </f:facet> >>> <h:inputText id="textCol1"/> >>> <h:outputText value="TextCol-1"/> >>> <h:commandLink action="greeting" value="Go for >>> another page."/> >>> <h:commandButton id="buttonCol1" value="Button-1" >>> action="greeting"/> >>> </h:panelGrid> >>> </h:form> >>> >>> My .groovy file code is >>> --------------------------------- >>> >>> public void defineUi() { >>> ui.StandardTable(uid: "HelloFormoutGrid", clocator: [tag: >>> "table", id: "helloForm:outGrid"]){ >>> InputBox(uid: "{tbody: 1, row: all, column: 1}", clocator: >>> [name:"helloForm:textCol*"]) >>> } >>> } >>> >>> public void testLink(){ >>> pause 3000 >>> getHTMLSource("HelloFormoutGrid"); >>> type "HelloFormoutGrid[1][1][1]", "Hello there" >>> } >>> >>> The output of the getHTMLSource() method called above is >>> >>> ---------------------------------------------------------------------------------------- >>> >>> HelloFormoutGrid: >>> <table id="helloForm:outGrid" border="10"> >>> <tbody> >>> <tr> >>> <td><input id="helloForm:textCol1" name="helloForm:textCol1" >>> type="text"></td> >>> <td>TextCol-1</td> >>> <td><a href="#" >>> onclick="document.forms['helloForm']['helloForm:_idcl'].value='helloForm:_id2';document.forms['helloForm'].submit(); >>> return false;">Go for another page.</a></td> >>> <td><input id="helloForm:buttonCol1" >>> name="helloForm:buttonCol1" value="Button-1" type="submit"></td> >>> </tr> >>> </tbody> >>> </table> >>> >>> HelloFormoutGrid[1][1][1]: >>> <td><input id="helloForm:textCol1" name="helloForm:textCol1" >>> type="text"></td> >>> >>> HelloFormoutGrid[1][1][2]: >>> <td>TextCol-1</td> >>> >>> HelloFormoutGrid[1][1][3]: >>> <td><a href="#" >>> onclick="document.forms['helloForm']['helloForm:_idcl'].value='helloForm:_id2'; >>> document.forms['helloForm'].submit(); return false;">Go for another >>> page.</a></td> >>> >>> HelloFormoutGrid[1][1][4]: >>> <td><input id="helloForm:buttonCol1" name="helloForm:buttonCol1" >>> value="Button-1" type="submit"></td> >>> >>> >>> >>> Can you suggest what is going wrong here now by looking a the >>> getHTMLSource method output? >>> >>> Please reply, waiting for your response. >>> >>> Thanks, >>> -Eric. >>> >>> >>> >>> On Thu, Aug 19, 2010 at 6:58 PM, Jian Fang <[email protected]>wrote: >>> >>>> Eric, >>>> >>>> I suspect there are some problems with your UI module, for the first UI >>>> module, you need to use >>>> UDL to define it since StandardTable uses UI template. >>>> >>>> >>>> ui.Form(uid: "HelloForm", clocator: [tag: "form", method: "post", id: >>>> "helloForm"]){ >>>> StandardTable(uid: "HelloFormoutGrid", clocator: [tag: "table", >>>> id: "helloForm:outGrid"]){ >>>> InputBox(uid: "HelloFormtextCol1", clocator:[id: >>>> "helloForm:textCol1"]) >>>> } >>>> } >>>> >>>> For instance, you could use >>>> >>>> >>>> ui.Form(uid: "HelloForm", clocator: [tag: "form", method: "post", >>>> id:"helloForm"]){ >>>> StandardTable(uid: "HelloFormoutGrid", clocator: [tag: "table",id: >>>> "helloForm:outGrid"]){ >>>> InputBox(uid: "{row: 1, column: 1} as >>>> HelloFormtextCol1", clocator:[id:"helloForm:textCol1"]) >>>> } >>>> } >>>> >>>> Be aware you should not use the same ID attribute for multiple elements. >>>> >>>> Thus, for your second UI module, you could define it as >>>> >>>> >>>> >>>> ui.Form(uid: "HelloForm", clocator: [tag: "form", method: "post", >>>> id:"helloForm"]){ >>>> StandardTable(uid: "HelloFormoutGrid", clocator: [tag: "table",id: >>>> "helloForm:outGrid"]){ >>>> InputBox(uid: "{row: all, column: 1}", clocator: [:]) >>>> } >>>> } >>>> >>>> Or use partial match ( >>>> http://code.google.com/p/aost/wiki/UserGuide070AppendixB#How_to_do_Attribute_Partial_Matching_in_Tellurium) >>>> for the id attribute >>>> >>>> >>>> ui.Form(uid: "HelloForm", clocator: [tag: "form", method: "post", >>>> id:"helloForm"]){ >>>> StandardTable(uid: "HelloFormoutGrid", clocator: [tag: "table",id: >>>> "helloForm:outGrid"]){ >>>> InputBox(uid: "{row: all, column: 1}", clocator: [id:" >>>> *^*helloForm:textCol"]) >>>> } >>>> } >>>> >>>> I need to see the runtime html source so that I can figure out what the >>>> correct UI module works for you. >>>> (Sorry, Trump does not support UI module yet). >>>> >>>> You could get the runtime html source using DOM inspector or by calling >>>> the following method in Telllurium: >>>> >>>> getHTMLSource("HelloForm"); >>>> >>>> >>>> http://code.google.com/p/aost/wiki/UserGuide070TelluriumAPIs#getHTMLSource >>>> >>>> The tellurium-website reference project included data grids, for >>>> example, the issue search result. >>>> But we do appreciate if some users could provide their examples to help >>>> Eric. Telluirum cannot really grow without >>>> a good community support. >>>> >>>> Thanks in advance, >>>> >>>> Jian >>>> >>>> >>>> On Thu, Aug 19, 2010 at 6:10 AM, Eric Gokavi <[email protected]>wrote: >>>> >>>>> Hello, >>>>> >>>>> I had posted a project regarding a JSF Grid not working few days back. >>>>> Now the progress is i am able to test everything except :(, >>>>> >>>>> Taking the example by code. >>>>> This is my small Grid Code(This is JSF Grid): >>>>> ======================= >>>>> <h:form id="helloForm"> >>>>> <h:panelGrid columns="1" border="10" id="outGrid"> >>>>> <h:inputText id="textCol1"/> >>>>> <h:inputText id="textCol2"/> >>>>> <h:inputText id="textCol3"/> >>>>> <h:inputText id="textCol4"/> >>>>> </h:panelGrid> >>>>> </h:form> >>>>> >>>>> Now i generate a .groovy code using the TrUMP utility by clicking on >>>>> the Grid and the 1st Text box. >>>>> >>>>> Scenario : 1 >>>>> ========= >>>>> The code is: >>>>> >>>>> ui.Form(uid: "HelloForm", clocator: [tag: "form", method: "post", id: >>>>> "helloForm"]){ >>>>> StandardTable(uid: "HelloFormoutGrid", clocator: [tag: "table", >>>>> id: "helloForm:outGrid"]){ >>>>> InputBox(uid: "HelloFormtextCol1", clocator:[id: >>>>> "helloForm:textCol1"]) >>>>> } >>>>> } >>>>> >>>>> i write a method in groovy file >>>>> >>>>> public void sayHello(){ >>>>> pause 3000 >>>>> type "HelloForm.HelloFormoutGrid.HelloFormtextCol1", "One" >>>>> } >>>>> >>>>> i run the mvn test >>>>> >>>>> What happen is: >>>>> ============ >>>>> 1. Tellurium tests runs >>>>> 2. New Browser opens >>>>> 3. "One" value gets typed in the first column of grid. >>>>> 4. Test passes. >>>>> >>>>> Scenario : 2 >>>>> ========= >>>>> >>>>> ui.Form(uid: "HelloForm", clocator: [tag: "form", method: "post", id: >>>>> "helloForm"]){ >>>>> StandardTable(uid: "HelloFormoutGrid", clocator: [tag: "table", >>>>> id: "helloForm:outGrid"]){ >>>>> InputBox(uid: "{row: all, column: 1}", clocator:[id: >>>>> "helloForm:textCol1"]) >>>>> } >>>>> } >>>>> >>>>> ------------------------------------------------------------------------------------------------------------------------------------------------ >>>>> NOTE: This time the INPUT BOX UID is changed from "HelloFormtextCol1" >>>>> to "{row: all, column: 1}" >>>>> >>>>> ------------------------------------------------------------------------------------------------------------------------------------------------- >>>>> >>>>> i write a method in groovy file >>>>> >>>>> public void sayHello(){ >>>>> pause 3000 >>>>> type "HelloForm.HelloFormoutGrid.[1][1]", "One" >>>>> } >>>>> >>>>> i run the mvn test >>>>> >>>>> What happen is: >>>>> ============ >>>>> 1. Tellurium tests runs >>>>> 2. New Browser opens >>>>> 3. Test passes. >>>>> >>>>> NOTE : "One" value DOSE NOT get typed in the first column of grid >>>>> although the test passes. >>>>> >>>>> When i use the code >>>>> >>>>> public void sayHello(){ >>>>> pause 3000 >>>>> type "HelloForm.HelloFormoutGrid[1][1]", "test" >>>>> def x = getValue("HelloForm.HelloFormoutGrid[1][1]") >>>>> println " Getting Value from Inbox Row One :: - "+x >>>>> assertEquals("test", x) >>>>> println " :: TEST PASSED :: - " >>>>> } >>>>> >>>>> output on console is : >>>>> >>>>> Getting Value from Inbox Row One :: - One >>>>> :: TEST PASSED :: - >>>>> >>>>> This means the value is getting set in the grid component and when we >>>>> call getValue method is comes back too. >>>>> >>>>> The only problem is i cannot see this in the browser (Firefox). >>>>> The other problem is the links and buttons are not getting clicked >>>>> this way so the flow dose not go to other pages i am doing this in >>>>> local env and none of the links are from outside env or domain. So the >>>>> timeout, proxies are not a problem >>>>> >>>>> Then again when i refer the direct id ( eg: click >>>>> HelloForm.HelloFormoutGrid.HelloFormLink1") all the links and buttons >>>>> work fine, when i give dynamic reference (eg: >>>>> HelloForm.HelloFormoutGrid[1][2] , second column is link column in >>>>> grid) it does not work . >>>>> >>>>> Is the functionality tested by any one of the uses, if yes kindly let >>>>> me know whats going wrong with me? >>>>> If any one can give me a small code snippet of grid component >>>>> and .groovy it will be gr8. >>>>> >>>>> Thanks in advance, >>>>> -Eric. >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> 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]<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]<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]<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]<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.
