51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 6962|回复: 11
打印 上一主题 下一主题

[原创] QTP中,getcelldata取到的webtable中的值,其中一列为空...找不到原因

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-8-5 10:48:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
部分代码如下:
只有第1列的值为空...
看看各位大虾的解决方案^^

a = Browser("软酷.人力资源引擎").Page("项目经理管理平台 - 软酷.人力资源引擎_2").Frame("mainRight").WebTable("个人邮箱").GetCellData("2","1")
msgbox (a)
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2008-8-5 10:50:16 | 只看该作者
肯定是定位单元格错误,你需要的值没在这个单元内,仔细检查下
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2008-8-5 15:33:33 | 只看该作者
LZ应该调试一下代码,更改一个GetCellData("2","1"),取值,看看是否都没有值
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2008-8-5 16:16:05 | 只看该作者
我都快晕死了,我将每一行的第一列都打印出来了,只有列的标题有值(说明列取的是正确的),但其它都为空.
代码如下:

b = Browser("软酷.人力资源引擎").Page("项目经理管理平台 - 软酷.人力资源引擎_2").Frame("mainRight").WebTable("个人邮箱").RowCount
msgbox (b)
For i = 1 to b
a = Browser("软酷.人力资源引擎").Page("项目经理管理平台 - 软酷.人力资源引擎_2").Frame("mainRight").WebTable("个人邮箱").GetCellData(i,1)
msgbox (a)
print a
Next
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2008-8-5 16:20:17 | 只看该作者
还有,我本想用数组将所有单元格都遍历出来,但是用rowcount可以,用ColumnCount就报错(参数错误),又晕了...
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2008-8-5 18:10:47 | 只看该作者
那你试试看从有第二列的那行开始将第2列的值打出来看看,看会不会报错~~

这种情况往往是因为你取的webtable嵌套了多层,而很不幸的是你取错了层次。一般情况下都是去取用spy看到的最内层的那个webtable,当然有时候也需要取其它层次的webtable,比如需要唯一确定webtable对象的时候~
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2008-8-5 22:24:17 | 只看该作者
原帖由 dalinangel 于 2008-8-5 16:20 发表
还有,我本想用数组将所有单元格都遍历出来,但是用rowcount可以,用ColumnCount就报错(参数错误),又晕了...


晕之前请先看看QTP的帮助文档,也许就把你救活了!

Description
Returns the number of columns in the table.
Syntax
object.ColumnCount (Row)

Syntax Details
Argument Description
object A test object of type WebTable.
Row Required. A Long value. The row number. The first row in the table is numbered 1.


遍历一个WebTable的方法:

For I=1 to Browser("XXX").Page("XXX").WebTable("XXX").RowCount
  For J = 1 to Browser("XXX").Page("XXX").WebTable("XXX").ColumnCount(I)
    Msgbox Browser("XXX").Page("XXX").WebTable("XXX").GetCellData(I,J)
  Next
Next
回复 支持 反对

使用道具 举报

该用户从未签到

8#
 楼主| 发表于 2008-8-6 11:22:37 | 只看该作者
我遍历了,只有第一列的值为空,是为空,并不是没有取到...

刚看了下网页的原代码,搞明白了值为空的原因,但怎么取值还没有搞定...

原因:
开发为了用样式控制字符串的截断,但又不想用DIV+CSS,所以,在单元格内又嵌入了一个文本框,然后将值传给文本框...这样就导致我用getcelldata取值为空...

<td height="25" bgcolor="#FFFFFF" class="a105" class="textOverflow">
<input type="text" id="out_email" readOnly="true" value='wangmaolin@broadengate.com' />       
</td>
<td bgcolor="#FFFFFF" class="textOverflow"><div align="center" class="a105"><a href="#" onclick="window.open('/portal/engResumePreview.html?method=search&appliedUserId=829')" class="a1">@@###</a></div></td>

这问题搞了这么长时间才弄明白原因,谢谢楼上几位大虾的帮助啦!
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2008-8-22 16:37:53 | 只看该作者
我也想知道这个问题怎么解决阿
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2008-8-23 17:26:14 | 只看该作者
还是那个办法
你需要加个wait  问题就解决了

运行时候太快
可能就会取不到值
回复 支持 反对

使用道具 举报

该用户从未签到

11#
发表于 2012-8-31 15:41:43 | 只看该作者
晕之前请先看看QTP的帮助文档,也许就把你救活了!

Description
Returns the number of columns in ...
陈能技 发表于 2008-8-5 22:24



  我按照这个代码弄了一下,也碰到这样的问题,遍历的时候第一行和第一列都不会显示的,纠结了,咋办呢?!
回复 支持 反对

使用道具 举报

该用户从未签到

12#
发表于 2012-9-1 20:57:52 | 只看该作者
顶6楼,几乎可以确定是webTable的层级取错了,一般webTable会存在2层以上,每个webtable都遍历输出一次看。这个东西还没研究清到底应该取的那层有什么特点
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-13 09:40 , Processed in 0.088014 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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