51Testing软件测试论坛

标题: 如何对比较好的对表格进行查找,并对找到的对象进行不同的操作 [打印本页]

作者: irabbit    时间: 2010-11-18 09:33
标题: 如何对比较好的对表格进行查找,并对找到的对象进行不同的操作
如何对比较好的对表格进行查找,并对找到的对象进行不同的操作。比如:

Group Name         Description         Group Members         Action
new         group         [ Add/Remove ]         [ Update ] [ Delete ]
test         test         [ Add/Remove ]         [ Update ] [ Delete ]
123         test         [ Add/Remove ]         [ Update ] [ Delete ]
asd         asd         [ Add/Remove ]         [ Update ] [ Delete ]
asdf         asd         [ Add/Remove ]         [ Update ] [ Delete ]


我要查找groupname: asdf, 然后进行 update 或者delete操作

这样的方法如何去执行了?有没有比较好的方案。万分感谢
作者: goal1860    时间: 2010-11-18 17:27
用classpath定位。把html贴出来
作者: irabbit    时间: 2010-11-19 01:46
你想看html,哦

<!-- **** START - GROUP SECTION **** -->


<table class="content" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="header">
Available Groups
<img src="/images/browser/spacer.gif" alt="" width="15" />

<a class="mask" href="groupCreate.html"><span class="icon_arrow">&raquo;&nbsp; </span> Add a new Group</a><br /><br />

</td>
</tr>
</table>



<table class="content" border="0" cellspacing="0" cellpadding="0">

<tr class="mainrow" valign="top" >
        <td width="200">Group Name</td>
        <td width="250">Description</td>
        <td width="120">Group Members</td>

        <td width="115" colspan="2" align="center">Action</td>
</tr>



<tr valign="top" class="row3" >
        <td width="200">new</td>
        <td width="250">group</td>

        <td width="80">

       
        [ <a href="groupMember.html?groupid=87">Add/Remove</a> ]
       
        </td>
       
        <td width="150">
       
        [ <a href="groupUpdate.html?groupid=87">Update</a> ]
       
       
       
        [ <a href="groupDelete.html?groupid=87">Delete</a> ]
       
        </td>

</tr>
<tr><td><img src="/images/browser/spacer.gif" alt="" width="1" border="0" /></td></tr>


<tr valign="top" class="row3" >
        <td width="200">test</td>
        <td width="250">test</td>

        <td width="80">
       
        [ <a href="groupMember.html?groupid=88">Add/Remove</a> ]
       
        </td>

       
        <td width="150">
       
        [ <a href="groupUpdate.html?groupid=88">Update</a> ]
       
       
       
        [ <a href="groupDelete.html?groupid=88">Delete</a> ]
       
        </td>

</tr>
<tr><td><img src="/images/browser/spacer.gif" alt="" width="1" border="0" /></td></tr>


<tr valign="top" class="row3" >

        <td width="200">123</td>
        <td width="250">test</td>

        <td width="80">
       
        [ <a href="groupMember.html?groupid=91">Add/Remove</a> ]
       
        </td>
       
        <td width="150">

       
        [ <a href="groupUpdate.html?groupid=91">Update</a> ]
       
       
       
        [ <a href="groupDelete.html?groupid=91">Delete</a> ]
       
        </td>

</tr>
<tr><td><img src="/images/browser/spacer.gif" alt="" width="1" border="0" /></td></tr>


<tr valign="top" class="row3" >
        <td width="200">asd</td>

        <td width="250">asd</td>

        <td width="80">
       
        [ <a href="groupMember.html?groupid=92">Add/Remove</a> ]
       
        </td>
       
        <td width="150">
       
        [ <a href="groupUpdate.html?groupid=92">Update</a> ]
       
       
       
        [ <a href="groupDelete.html?groupid=92">Delete</a> ]
       
        </td>

</tr>
<tr><td><img src="/images/browser/spacer.gif" alt="" width="1" border="0" /></td></tr>


<tr valign="top" class="row3" >
        <td width="200">asdf</td>
        <td width="250">asd</td>

        <td width="80">
       
        [ <a href="groupMember.html?groupid=93">Add/Remove</a> ]
       
        </td>

       
        <td width="150">
       
        [ <a href="groupUpdate.html?groupid=93">Update</a> ]
       
       
       
        [ <a href="groupDelete.html?groupid=93">Delete</a> ]
       
        </td>

</tr>
<tr><td><img src="/images/browser/spacer.gif" alt="" width="1" border="0" /></td></tr>


</table>




<!-- **** END - GROUP SECTION **** -->
作者: goal1860    时间: 2010-11-20 21:39
先写两个函数,把groupname 作为参数传进去. 以update为例,
private updateGroup(String groupName){
  selenium.click("//table[2]/tbody/tr[td[1]='" + groupName + "']/td[4]/a[1]");
  selenium.waitForPageToLoad("30000")
}
然后调用这个函数:
updateGroup("new");
updateGroup("asdf");
作者: irabbit    时间: 2010-11-23 01:48
回复 4# goal1860


  那直接把table的xpath带到方法里,这样好吗?我一般都是吧xpath当作一个properties文件读入,这样假如table的xpath变化,我直接修改properties文件里的地址就好了,你这样还要修改代码.
这是通常使用的方法吗?还有没有更好的。非常感谢你的回复。
作者: irabbit    时间: 2010-11-23 02:04
回复 4# goal1860


    /tr[td[1]='" + groupName + "']

我了解这个意思,但是好像不行,找不到
作者: goal1860    时间: 2010-11-23 17:56
回复 5# irabbit


    从代码结构的角度来讲应该建立方法,以便重用。
作者: goal1860    时间: 2010-11-23 17:57
回复 6# irabbit


    我在本地调试通过的。但我的html和你的不完全相同,所以你要进一步调试,或者发给我完整的html文件




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2