For your UI module as follows:
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*"])
}
}
Could you change it to
public void defineUi() {
ui.StandardTable(uid: "HelloFormoutGrid", clocator: [tag: "table",
id: "helloForm:outGrid"]){
InputBox(uid: "{row: all, column: 1}", clocator: [:])
}
}
For table, the element can be referenced by its index unless the position
keeps changing.
Thanks,
Jian
On Mon, Sep 20, 2010 at 9:53 AM, Jian Fang <[email protected]> wrote:
> 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.