zoujufei 发表于 2010-3-5 16:38:57

为什么一个列表不能识别成一整个列表而是每一行都单独识别成一个列表

录制的一个列表,只能将每一行都单独识别成一个webtable,而不能将整个列表识别成一个webtable,导致要获取列表的内容,还需一行行指定,而不能通过for循环。怎么解决?

yujie6832 发表于 2010-3-5 16:45:57

有截图吗,我看看什么系统,这个系统怪异,呵呵

wujianping 发表于 2010-3-5 16:50:10

可以啊,怎么不行。将行数定义为一个变量,循环增加这个变量值就行了,也就是当该step运行一次,变量就加1,到末行退出,也可以到末行换一个列,这就需要对行列都设置变量

zoujufei 发表于 2010-3-5 17:01:58

截图

系统是我们自己开发的一个B/S架构WEB服务器

zoujufei 发表于 2010-3-5 17:06:58

回复 3# 的帖子

怎么增加行数?每一行自己本身只能作为一个独立的webtable,增加行也没用啊,增加一行就到另一个table了。

feiyunkai 发表于 2010-3-8 13:36:36

Msgbox WebTable_DataGet(2,3) '看下第2行,第3列的数据,第一行是标题行,第1列是复选框,所以数据可能是:申请人1
Public Function WebTable_DataGet(row,cols)
WebTable_DataGet=Browser("Centerm Management System").Page("Centerm Management System").WebTable("test1").GetCellData(row,col)'取第row行,第cols列的数据
End Function
'由于第一行是标题行,另外你截图上的表格共有8列,但只显示了6列,所以如果截图已经截取了所有列,那么就可能有隐藏列,所以具体数据的行和列可以用msgbox看一下

[ 本帖最后由 feiyunkai 于 2010-3-8 13:45 编辑 ]

shanxi 发表于 2010-3-8 13:40:08

看起来像是CMS系统

能把前台html文件传上来否?  看起来似乎是QTP不能正确识别啊

zoujufei 发表于 2010-3-9 10:50:27

回复 6# 的帖子

WebTable("test1").GetCellData(row,col),表test1只有1行(我通过Msgbox返回它的行数,只有1),所以用这个方法是行不通的。请注意:我的每一行都当成一个独立的表格

zoujufei 发表于 2010-3-9 11:21:54

回复 7# 的帖子

你怎么知道CMS系统的,是我们公司的产品
以下是上面截图的一段HTML文件
ss="x-grid3-hd-btn"/>操作<img src="mainfrm/common/images/s.gif" class="x-grid3-sort-icon"/></div></td></tr></thead></table></div></div><div class="x-clear"/></div><div class="x-grid3-scroller" id="ext-gen589" style="overflow-x: hidden; width: 778px; height: 88px;"><div style="width: 757px;" class="x-grid3-body" id="ext-gen590"><div style="width: 757px;" class="x-grid3-rowx-grid3-row-first "><table cellspacing="0" cellpadding="0" border="0" style="width: 757px;" class="x-grid3-row-table"><tbody><tr><td tabindex="0" style="width: 18px;" class="x-grid3-col x-grid3-cell x-grid3-td-checker x-grid3-cell-first "><div unselectable="on" class="x-grid3-cell-inner x-grid3-col-checker"><div class="x-grid3-row-checker"> </div></div></td><td tabindex="0" style="width: 117px;" class="x-grid3-col x-grid3-cell x-grid3-td-38 "><div unselectable="on" class="x-grid3-cell-inner x-grid3-col-38">test1</div></td><td tabindex="0" style="width: 117px;" class="x-grid3-col x-grid3-cell x-grid3-td-39 "><div unselectable="on" class="x-grid3-cell-inner x-grid3-col-39">申请人1</div></td><td tabindex="0" style="width: 117px;" class="x-grid3-col x-grid3-cell x-grid3-td-40 "><div unselectable="on" class="x-grid3-cell-inner x-grid3-col-40">升腾</div></td><td tabindex="0" style="width: 117px;" class="x-grid3-col x-grid3-cell x-grid3-td-41 "><div unselectable="on" class="x-grid3-cell-inner x-grid3-col-41">28053888</div></td><td tabindex="0" style="width: 117px;" class="x-grid3-col x-grid3-cell x-grid3-td-42 "><div unselectable="on" class="x-grid3-cell-inner x-grid3-col-42">zoujufei@centerm.com.cn</div></td><td tabindex="0" style="width: 69px;" class="x-grid3-col x-grid3-cell x-grid3-td-43 "><div unselectable="on" class="x-grid3-cell-inner x-grid3-col-43">未通过</div></td><td tabindex="0" style="width: 69px;" class="x-grid3-col x-grid3-cell x-grid3-td-44 x-grid3-cell-last "><div unselectable="on" class="x-grid3-cell-inner x-grid3-col-44"><input type="button" onclick="approve(event);" id="104" value="审批"/></div></td></tr></tbody></table></div><div style="width: 757px;" class="x-grid3-row "><table cellspacing="0" cellpadding="0" border="0" style="width: 757px;" class="x-grid3-row-table"><tbody><tr><td tabindex="0" style="width: 18px;" class="x-grid3-col x-grid3-cell x-grid3-td-checker x-grid3-cell-first ">

feiyunkai 发表于 2010-3-9 13:07:15

原帖由 zoujufei 于 2010-3-9 10:50 发表 http://bbs.51testing.com/images/common/back.gif
WebTable("test1").GetCellData(row,col),表test1只有1行(我通过Msgbox返回它的行数,只有1),所以用这个方法是行不通的。请注意:我的每一行都当成一个独立的表格

那可以试下以下方法,自己调试下,应该可以得到你想要的数据:

For i=0 to 1000
If Browser("Centerm Management System").Page("Centerm Management System").WebTable("class:=x-grid3-row-table","index:="&i).existthen
username=Browser("Centerm Management System").Page("Centerm Management System").WebTable("class:=x-grid3-row-table","index:="&i).GetCellData(1,2)
print(username)
else
Exit for
End if
Next
页: [1]
查看完整版本: 为什么一个列表不能识别成一整个列表而是每一行都单独识别成一个列表