51Testing软件测试论坛

标题: 录制脚本时遇到的问题 [打印本页]

作者: girlecho    时间: 2007-7-11 15:56
标题: 录制脚本时遇到的问题
我用QTP的时间不长,今天在录制脚本时遇到了一个这样的问题

我录制的表格截图见附件

表格中一共有三列,我需要删除其中一行的时候只能点击最后一列的删除图片删除,问题就是无法定位

这三列中只有最后一列删除的有标志符index,我录制脚本的时候删除的是第二行,index的值为1,但如果在执行脚本的时候我需要删除的行在第三行,他仍然会去删除第二行的记录。

我尝试把index的值设为参数,但是因为其他列没有任何可以标识的属性,我没有办法取得对应的index,应该怎么办呢?
作者: 风过无息    时间: 2007-7-11 18:08
楼主可以得到删除的总个数n,这样就可以删除最大index一个.前提是index最大那个就是最后那条纪录.
作者: girlecho    时间: 2007-7-12 09:35
但是问题是。。我不一定要删除最大的那个~我需要删除的是某个特定监控方向的记录,这个记录在表里的位置是随机的
我怎么能够根据监控方向来定位删除呢?
作者: winfood    时间: 2007-7-12 10:34
关键就是在脚本中找到要删除那行的一个唯一识别属性。可以从两个思路去考虑:
1) 按照你已经试过的办法,找到index然后去点击最后一列。
得到index的办法就是遍历这个Table中的第1列,看要删除那行是第几行;或者找开发人员帮助,从数据库查询的角度去确定index;

2) 我觉得每行的第3列除了index以外,还应该有其他信息对应着该行数据。不然的话,数据库怎么删除这行数据呢?
你可以再用Spy看看有没有其他可以唯一识别该行的信息然后再利用。
我们的项目中删除按钮的属性中有一个属性是Value,Value的属性值对应被删除行的唯一ID。这样我们删除一行的时候都是先查询到ID,然后用类似WebButton("Value:=***").Click的语句去删除数据。
作者: evergreenwang    时间: 2007-7-18 21:42
支持!!!!!!!!!!!!!!!!!!!!!!!!!!!
作者: syang0517    时间: 2007-7-19 16:48
学习了
作者: wtucel    时间: 2007-7-19 16:51
Dim name
Dim RowCount

For RowCount=2  to 50                                            '假设每页有50行,第一行一般为title,那从第二行开始循环

       name=Browser("browser").Page("XXX").Frame("XXXXXX").WebTable("企业代码").GetCellData(RowCount,2)   '这里我是根据表格的第二列去判断我要删除的行,因此,返回每一行第2列的值,并存入name这个变量

       If name="我要删除的那条记录的企业代码"  then                 '判断name是否是我想要删除的那行
                                               
               Browser("browser").Page("xxx").Frame("xxxxxx").Link("index:="&(RowCount-2)).Click      '如果是则去点对应的删除按钮
                                               
               Exit for
                       
        end if  
Next


需要说明的是Link("index:="&(RowCount-2)).Click  这句

索引( index ):指示该对象在应用程序代码中相对于其他描述都相同的其他对象的显示顺序。是从0开始的,而表格的行号是从1开始的,而且表格的第一行一般被title占了,所有这里行号跟'删除'按纽index的值刚好差2.
作者: flyskypei    时间: 2007-7-20 16:25
标题: webtable
怎么我总是找不到对象




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