51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 3844|回复: 15
打印 上一主题 下一主题

[求助] 如果WEB中的表格也被识别成WebElement,那怎样取得一个单元格数据(cell data)

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2009-9-21 12:43:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如果WEB中的表格也被识别成WebElement,那怎样取得一个单元格数据(cell data)?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

  • TA的每日心情
    开心
    2016-8-25 11:11
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    2#
    发表于 2009-9-21 13:49:43 | 只看该作者
    看看他的思路是否对你有所启发,我没有测试过B/S
    http://bbs.51testing.com/thread-170789-1-1.html
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3#
    发表于 2009-9-21 16:04:05 | 只看该作者
    添加对象时,QTP会自动识别到web element那一层,你就添加上一层对象“webtable”,,取值时直接取:
    Browser("##").Page("##").WebTable("##").GetCellData(2,4),注意你那单元格是第几行第几列就好了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4#
     楼主| 发表于 2009-9-21 16:56:18 | 只看该作者

    楼上的朋友还需要请教你一下

    楼上的朋友说的很好,我添加对象时也发现了这个问题,去添加表格中具体一个单元格时,上一层对象就是“webtable”,按理说就是那个表格了,可是去添加上一层对象“webtable”后,用Browser("##").Page("##").WebTable("##").GetCellData(A,B),然后再用msgbox方法把取得的内容显示出来,可是显示出来的内容是空,不知道是怎么回事,请问你用这种方法在解决具体问题的时候有成功的经验吗?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
    发表于 2009-9-21 17:23:05 | 只看该作者
    这种方法一般是可以的,建议你反键查看一下源文件,你显示空值有可能是你行列输入错了,可能存在没有宽度的单元格让你的行列输入错误。。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
    发表于 2009-9-21 17:32:16 | 只看该作者
    戒情人,你好
    你的情况可能是行和列搞错了,字段可能就是webtable的第一行,列可能存在空列,你可以查查看 问题肯定在这
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
     楼主| 发表于 2009-9-21 17:34:44 | 只看该作者

    朋友们太厉害了

    谢谢大家,按你们的方法我实现了。这个方法即简单又好用,可是唯一的问题现在是,我明明是GetCellData(2,2),可是得出来的确实第一行第一列的值,不知道是怎么回事?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
    发表于 2009-9-21 17:36:53 | 只看该作者
    我在上面已经说了,你的第一行是字段名,你的第一列是空列(或者有别的单选框之类的),所以你要取的值是(2,2),你可以咨询下开发的,看他的table怎么写的
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
    发表于 2009-9-21 17:52:21 | 只看该作者
    你可以object spy下,来看下webtable的属性,那里会显示几行几列,然后你可以很准确的定位你要的数据是几行几列的
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
     楼主| 发表于 2009-9-21 17:52:50 | 只看该作者

    太感谢你了

    现在我用(1,1)得到的是空,如果第一行是字段名,第一列是空列,那么(1,2)是否应该是得到第一列的列名呢?我用(1,2)得到的还是空。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11#
     楼主| 发表于 2009-9-21 17:57:13 | 只看该作者

    回复 9# 的帖子

    非常感谢你,和你说的一样,从程序界面上看那个表格是7行2列,但是通过object spy看,却是8行3列。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12#
    发表于 2009-9-21 18:00:27 | 只看该作者
    你代码怎么写的?
    msgbox Browser("##").Page("##").WebTable("##").GetCellData(1,2),应该结果是第二列的列名
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    13#
     楼主| 发表于 2009-9-21 18:30:25 | 只看该作者

    我就是那么写的

    我就是那么写的,得到的是空,不知道为什么。取表格的数据只要行和列各加1就可以正常取数据。非常感谢你的帮忙。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    14#
    发表于 2009-9-22 11:53:38 | 只看该作者
    object spy 看下 你所看到的 表格 里面到底他的行列到底是多少的!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    15#
    发表于 2009-9-22 12:12:39 | 只看该作者
    Browser("##").Page("##").WebTable("##").GetRowCount
    Browser("##").Page("##").WebTable("##").GetColumnCount()
    你先打出这些值,就知道行列各是多少了

    因为有可能开发因为界面上的一些需要
    所以会放置一些空列(这个我就遇到了 呵呵)

    --------------题外话
    关于楼主的这个问题  最起先我也遇见过
    其实直接用描述性编程来解决就是  不用管webtable被识别成什么 或者  webtable被一些div层被包住
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    16#
     楼主| 发表于 2009-9-23 15:47:18 | 只看该作者

    非常感谢大家

    就像大家说的那样,我问开发人员了,是把字段名那一行当做了第一行,并且有一个隐藏了的列。大家非常热情,我非常感动
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-5-1 11:52 , Processed in 0.079728 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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