51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 3917|回复: 9
打印 上一主题 下一主题

[讨论] Div中的WebTable如何处理?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2009-8-26 16:04:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天在录制脚本的时候发现一个问题
WebTalbe对象被一个Div层包着
所以不管如何spy  都只能获取到一个Element对象

如果我要WebTable对象进行操作
应该如果进行操作?

本帖子中包含更多资源

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

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

使用道具 举报

该用户从未签到

2#
发表于 2009-8-26 17:49:44 | 只看该作者
不好搞!
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2009-8-26 18:02:59 | 只看该作者
期望中的WebTable对象已经不能被识别了。。。另寻它招吧~~~
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2009-8-26 21:08:32 | 只看该作者
用HTML DOM对象试试
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2009-8-27 21:34:49 | 只看该作者
::yiwusuoyou:::
方法:
1   ,
dim a
set a=browser().page().webelement("html id:=gridview")

2,接着到这里你就知道了吧,你已经获取到table了。然后你就可以开始操刀挖你想要的东西。
例如:
dim childNodes
set childNodes=a.object.childNodes
childNodes属性将返回一个数组,然后就遍历下之类的。

3,挖到了某个你确定的节点后,就可以获取这个节点里面的控件或者是属性,例如value之类的。
相对这种方法,如果要写得很灵活,需要比较大的代码量,但如果写死,不灵活,还是比较容易实现的。
其实这东西建议安装个辅助工具,能让你挖得更深。
http://www.51testing.com/index.p ... space-itemid-142617
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2009-8-27 21:48:33 | 只看该作者
再举个例子,就好像你里面的那个check box如果是在第一的第一个.....节点的话
dim a
set a=browser().page().webelement("html id:=gridview")
dim checkObj
set checkObj=a.object.firstChild.firstChild.firstChild.firstChild
checkObj.click
::yiwusuoyou:::    很爽吧~~给朵花吧,1年多没收到花的。
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2009-8-27 21:52:51 | 只看该作者

这个我今天也挖到这里了

问题就在于innerhtml里面的内容
她不仅仅是单纯的html代码

明天去公司了再继续看看  
O(∩_∩)O哈哈~    思路是有了
明天再研究下  

假装兄厉害!!麻烦耽搁你时间了 呵呵
可惜现在少了yebest兄  论坛里qtp块不再热闹了
回复 支持 反对

使用道具 举报

该用户从未签到

8#
 楼主| 发表于 2009-8-28 17:33:09 | 只看该作者
之前对这个dom的操作比较少,这次花了不少时间在上面,最后终于搞整出这个东西来了
下面的代码仅仅是为了获取到table中的值 没有做过多修饰
set  list = Browser("IPP Portal").Page("销售-电汇邮局收款单").WebElement("html id:=gridview").Object.firstChild.childNodes
For i = 0  to list.length-1
    ' 找到table里面的数据行
        If list(i).classname = "even" or list(i).classname = "odd" Then
                '数据行中的某具体数据
                set numbera = list(i).childNodes
                For j = 0 to numbera.length-1
                        msgbox numbera(j).innerText
               ......
                Next
        End If
Next
回复 支持 反对

使用道具 举报

该用户从未签到

9#
 楼主| 发表于 2009-8-28 17:36:11 | 只看该作者
最后很郁闷的脑袋一转
为什么不用描述性编程  直接获取这个WebTable呢....于是有了下面的代码....
Browser("IPP Portal").Page("销售-电汇邮局收款单").WebTable("html id:=gridview").GetCellData(5,6)

哈哈
虽然这个东西搞整了我一天多时间(上班时候忙里偷闲)
最后还是用了个最简单的办法
但是中间的过程还是很有收获的

再次谢谢假装兄的提醒 还有你的关于节点的故事的文章
虽然后来摒弃了上楼的这个
但是探索过程中对节点相关还是了解了不少

呵呵  结贴!
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2009-8-28 23:17:04 | 只看该作者
::yiwusuoyou::: 没有在现场。其实你贴点代码出来或者会好点。直接丢本地运行下HTML就明了。
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-4-24 20:05 , Processed in 0.075088 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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