dalinangel 发表于 2008-8-5 10:48:50

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

部分代码如下:
只有第1列的值为空...
看看各位大虾的解决方案^^

a = Browser("软酷.人力资源引擎").Page("项目经理管理平台 - 软酷.人力资源引擎_2").Frame("mainRight").WebTable("个人邮箱").GetCellData("2","1")
msgbox (a)

zte_boy 发表于 2008-8-5 10:50:16

肯定是定位单元格错误,你需要的值没在这个单元内,仔细检查下

今天有雾 发表于 2008-8-5 15:33:33

LZ应该调试一下代码,更改一个GetCellData("2","1"),取值,看看是否都没有值

dalinangel 发表于 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

dalinangel 发表于 2008-8-5 16:20:17

还有,我本想用数组将所有单元格都遍历出来,但是用rowcount可以,用ColumnCount就报错(参数错误),又晕了...

hsjzfling 发表于 2008-8-5 18:10:47

那你试试看从有第二列的那行开始将第2列的值打出来看看,看会不会报错~~

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

陈能技 发表于 2008-8-5 22:24:17

原帖由 dalinangel 于 2008-8-5 16:20 发表 http://bbs.51testing.com/images/common/back.gif
还有,我本想用数组将所有单元格都遍历出来,但是用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

dalinangel 发表于 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>

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

shirlincn 发表于 2008-8-22 16:37:53

我也想知道这个问题怎么解决阿

kevin_swpi 发表于 2008-8-23 17:26:14

还是那个办法
你需要加个wait问题就解决了

运行时候太快
可能就会取不到值

缥缈宫主 发表于 2012-8-31 15:41:43

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

Description
Returns the number of columns in ...
陈能技 发表于 2008-8-5 22:24 http://bbs.51testing.com/images/common/back.gif


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

xjwldlover 发表于 2012-9-1 20:57:52

顶6楼,几乎可以确定是webTable的层级取错了,一般webTable会存在2层以上,每个webtable都遍历输出一次看。这个东西还没研究清到底应该取的那层有什么特点
页: [1]
查看完整版本: QTP中,getcelldata取到的webtable中的值,其中一列为空...找不到原因