51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 2658|回复: 13
打印 上一主题 下一主题

[求助] webtable嵌套的字段取值问题,参考前贴无助后发起

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2009-7-16 21:47:27 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
各位同仁,最近在工作要用到qtp,遇到对webtable的字段检查的问题,比较困惑,希望能坛子里找到解决的办法,多多指点。

这是在frame下的webtable,如图所示
希望得到"已加载"的字段来作检查。

用 Object Spy 学习此字段为frame.webtable.webtable.webtable.webelement,
当然spy成webelement是没办法的,但可以看出3个表的嵌套.

代码如下:
Dim i,j,n,m,k,num,obj,webobj,webtbl
Set webtbl=description.Create
webtbl("micclass").value="WebTable"
webtbl("html tag").Value = "TABLE"
set webobj=Browser("Browser").Page("Browser").Frame("设备信息加载").ChildObjects(webtbl)
num=webobj.count
'居然有10个table,后来发现很多空表               
msgbox "tables sum:" &num
For  j=0 To num - 1
        Set obj=webobj(j)
        m=obj.RowCount
        For i=1 to m
                n= obj.ColumnCount (i)
                '统计显示每个table下各有多少的行和列
                msgbox "table:"& j +1 &"rows:" & m &"columns:" & n
                For k = 1 to n
                '显示每个table里每个cell的值
                msgbox "table:"& j +1 & "row:"& i &"column:" & k &"cell:"& obj.GetCellData (i,k)
                Next
        Next
Next

'发现想要的值在第7个webtable里,但是只有一行一列,也就是说把整个字段标记为了一个cell.
也就是图中红色框中字符连成成串为cell的值,checkbox为一个空格
其他webtable没能找到这样的字段了。
'我在想图中所见的每个格为什么就不是表的一个cell呢?实在不行就只好把整个字段分解得到期望字段了。

其次,spy看到嵌套3个表,就做了下面的尝试
Dim desobj,num,obj,webobj,webtbl
统计webelement个数
Set desobj=description.Create
desobj("micclass").value="WebElement"
desobj("html tag").Value = "TD"
--------------------------
或者统计子表个数
Set desobj=description.Create
desobj("micclass").value="WebElement"
desobj("html tag").Value = "TD"
--------------------------------
Set webtbl=description.Create
webtbl("micclass").value="WebTable"
webtbl("html tag").Value = "TABLE"

'for遍历webtable 的index  ,10个webtable
set webobj=Browser("Browser").Page("Browser").Frame("设备信息加载").WebTable(webtbl).ChildObjects(desobj)
num=webobj.count

'居然无论是用webelement还是子表,每个webtable中num都为空

不知道我所有的操作有什么不妥,我也是才搞几天QTP,还理解不是很深。搜索了相关帖子还是没解决,
现在就是要得到表中的字段,往指点迷津,谢谢。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2009-7-17 11:15:41 | 显示全部楼层
谢谢  我先去尝试下。 有情况再来请教
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2009-7-17 11:20:33 | 显示全部楼层
也就是说getElementsByTagName可以把嵌套几层table的element取到咯?我还是先去看哈help,那个最直接。呵呵
随便说下 这个系统用php做的,
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2009-7-17 18:16:01 | 显示全部楼层
回复 2楼

根据推荐假兄的文章,用Object.GetElementsByTagName获取字段,count提示对象不支持。
采用length对其他的列子的页面运行结果一切正常。


我这个页面的每个期望字段都是在td tag内,于是我也用length运行下面的代码:

Dim desc_td
Set desc_td=description.Create()
desc_td("html tag").value="TD"
msgbox Browser("Browser").Page("Page").ChildObjects(desc_td).count
'其结果为7
msgbox Browser("Browser").Page("Page").Object.GetElementsByTagName("td").length
'其结果为1

这样的结果太诡异了,我把源码贴出来,其中有几十个<td><\td>!
希望大家帮我看哈,谢谢
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2009-7-17 18:17:56 | 显示全部楼层
代码如下
<body>
  <style>   
  *{   margin:0;   padding:0;}   
  body{   height:100%;}   
  .dis{   width:100%;     background:   green;   position:absolute;   left:0;   right:0;   top:0;   bottom:0;   -moz-opacity:0.5;   filter:alpha(opacity=50);z-index:98;   height:100%; visibility: hidden  }   
  </style>   
<div id="tip" style="position:absolute; left:300px; top:250px; width:400px; height:20px; z-index:99; background-color: #94BBDD; layer-background-color: #94BBDD; border: 3px none #000000; visibility: hidden">
<table width=100% height=100% style="border-collapse:collapse" border=2>
<tr><td>
<p align="center">
<span id=showi></span><br>
<img name="processbar" src="/images/process.gif" width="400" height="20">
</p>
</td></tr></table>
</div>
<div id="mydiv" class="dis">
<iframe id="myiframe" class="dis"></iframe>
</div>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td><table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="14" class="layoutleft"></td>
<td width="19" class="layoutdot"></td>
<td class="layoutbg">设备信息加载</td>
<td width="14" class="layoutright"></td>
</tr>
</table></td>
</tr>
<tr>
<td class="layoutborder">
<form name="form1" method="post" action="/dev_control/load_info.php">
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="40" height="25"> </td>
<td align="right">名称:
  <input type="text" name="dev_name" maxlength="30" value="">  <input type="submit" name="search" value="搜 索" class="button"></td>
</tr>
</table>
<table width="100%" border="0" cellpadding="1" cellspacing="1">
<tr>
<td>
<table width="100%" border="0" cellpadding="4" cellspacing="1" class="tableborder">
<tr>
<td width="5%" rowspan="2" align="center" class="titlebg">选择</td>
<td width="17%" rowspan="2" align="center" class="titlebg">设备名称</td>
<td width="8%" rowspan="2" align="center" class="titlebg">是否连通</td>
<td colspan="7" align="center" class="titlebg">设备状态</td>
</tr>
<tr>
  <td align="center" width="10%" class="titlebg">基本密钥</td>
  <td align="center" width="10%" class="titlebg">设备密钥</td>
  <td align="center" width="10%" class="titlebg">网络参数</td>
  <td align="center" width="10%" class="titlebg">安全规则</td>
  <td align="center" width="10%" class="titlebg">防护规则</td>
  <td align="center" width="10%" class="titlebg">路由规则</td>
  <!--<td align="center" width="10%" class="titlebg">组播规则</td>-->
  <td align="center" width="10%" class="titlebg">VLAN规则</td>
</tr>
</table></td>
<td width="14"> </td>
</tr>
</table>
<table width="100%" border="0" cellpadding="1" cellspacing="1">
<tr>
<td colspan="10">
<div id="autoscroll" align="center" valign="top" style="overflow-y:scroll; height:265;width:100%;">
<table width="100%" border="0" cellpadding="4" cellspacing="1" class="tableborder">
<tr id="tr_0" class="tdbgred">
<td width="5%" height="25" align="center">
<input type="checkbox" name="chkid[]" id="td_0" value="25296918" class="inputbox" > </td>
<td width="17%" align="center">3-1-200</td>
<td width="8%" align="center"><font color=green>连通</font></td>
<td width="10%" align="center"><font color=red>加载失败</font></td>
<td width="10%" align="center">已加载</td>
<td width="10%" align="center">已加载</td>
<td width="10%" align="center">已加载</td>
<td width="10%" align="center">已加载</td>
<td width="10%" align="center">已加载</td>
<!--<td width="10%" align="center"><font color=blue>未加载</font></td>-->
<td align="center">已加载</td>
</tr>
<tr id="tr_1" class="tdbgbai">
<td width="5%" height="25" align="center">
<input type="checkbox" name="chkid[]" id="td_1" value="25296919" class="inputbox" > </td>
<td width="17%" align="center">3-1-201</td>
<td width="8%" align="center"><font color=green>连通</font></td>
<td width="10%" align="center"><font color=red>加载失败</font></td>
<td width="10%" align="center">已加载</td>
<td width="10%" align="center">已加载</td>
<td width="10%" align="center">已加载</td>
<td width="10%" align="center">已加载</td>
<td width="10%" align="center">已加载</td>
<!--<td width="10%" align="center"><font color=blue>未加载</font></td>-->
<td align="center">已加载</td>
</tr>
<tr class="tdbgbai">
<td height="25" width="5%" align="center"> </td>
<td width="17%" align="center"> </td>
<td width="8%" align="center"> </td>
<td width="10%" align="center"> </td>
<td width="10%" align="center"> </td>
<td width="10%" align="center"> </td>
<td width="10%" align="center"> </td>
<td width="10%" align="center"> </td>
<td width="10%" align="center"> </td>
<!--<td align="center"> </td>-->
<td align="center"> </td>
</tr>
<tr class="tdbgbai">
<td height="25" width="5%" align="center"> </td>
<td width="17%" align="center"> </td>
<td width="8%" align="center"> </td>
<td width="10%" align="center"> </td>
<td width="10%" align="center"> </td>
<td width="10%" align="center"> </td>
<td width="10%" align="center"> </td>
<td width="10%" align="center"> </td>
<td width="10%" align="center"> </td>
<!--<td align="center"> </td>-->
<td align="center"> </td>
</tr>
<tr class="tdbgbai">
<td height="25" width="5%" align="center"> </td>
<td width="17%" align="center"> </td>
<td width="8%" align="center"> </td>
<td width="10%" align="center"> </td>
<td width="10%" align="center"> </td>
<td width="10%" align="center"> </td>
<td width="10%" align="center"> </td>
<td width="10%" align="center"> </td>
<td width="10%" align="center"> </td>
<!--<td align="center"> </td>-->
<td align="center"> </td>
</tr>
<tr class="tdbgbai">
<td height="25" width="5%" align="center"> </td>
<td width="17%" align="center"> </td>
<td width="8%" align="center"> </td>
<td width="10%" align="center"> </td>
<td width="10%" align="center"> </td>
<td width="10%" align="center"> </td>
<td width="10%" align="center"> </td>
<td width="10%" align="center"> </td>
<td width="10%" align="center"> </td>
<!--<td align="center"> </td>-->
<td align="center"> </td>
</tr>
<tr class="tdbgbai">
<td height="25" width="5%" align="center"> </td>
<td width="17%" align="center"> </td>
<td width="8%" align="center"> </td>
<td width="10%" align="center"> </td>
<td width="10%" align="center"> </td>
<td width="10%" align="center"> </td>
<td width="10%" align="center"> </td>
<td width="10%" align="center"> </td>
<td width="10%" align="center"> </td>
<!--<td align="center"> </td>-->
<td align="center"> </td>
</tr>
</table>
</div></td>
</tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="50%" align="left"><input type="checkbox" name="chkall_flag" value="1"   class="inputbox">
全选
  
共<span class="fontredb">2</span>台设备
<!-- 共<span class="fontredb"></span>页 每页显示<span class="fontredb"></span>条 当前为第<span class="fontredb"></span>页 </td>
<td align="right"> <img src="/images/p2.gif" width="9" height="9"><a href="">上一页</a> <a href="">下一页</a><img src="/images/p3.gif" width="11" height="9"> <img src="/images/p1.gif" width="11" height="9"><a href="">首页</a> <a href="">尾页</a><img src="/images/p4.gif" width="11" height="9"> 跳转到第
<input name="turn_page" type="text" size="3" value="">
<input type="submit" name="submit" value="Go" class="buttongo">--></td>
</tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="center" height="25" valign="bottom">
<input type="submit" name="load_basekey" value="加载基本密钥"  class="button1">
<input type="submit" name="load_key" value="加载设备密钥"  class="button1">
<input type="submit" name="load_info" value="加载网络参数"  class="button1">
<input type="submit" name="load_rule" value="加载安全规则"  class="button1">
<input type="submit" name="load_defend" value="加载防护规则"  class="button1">
<input type="submit" name="load_route" value="加载路由规则"  class="button1">
<!--<input type="submit" name="load_broadcast" value="加载组播规则"  class="button1">-->
<input type="submit" name="load_vlan" value="加载VLAN规则"  class="button1">
<hr>
<input type="submit" name="load_all" value="加载所有信息"  class="button1"></td>
</tr>
</table>
</form></td>
</tr>
</table>
</body>
</html>
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2009-7-29 16:33:56 | 显示全部楼层
读了嵌套的结构还是有问题,暂时没解决 先用split把工作做走再说,等以后再好生看哈
谢谢各位帮助
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2009-8-12 12:25:38 | 显示全部楼层
感谢 楼上的兄弟帮助 ,我始终没能解决,希望你能把方法或者代码贴上来,让我学习下。谢谢
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-6-3 10:37 , Processed in 0.072038 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表