51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3244|回复: 10
打印 上一主题 下一主题

[原创] 关于QTP描述性语言和对象仓库的困惑

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2010-3-24 17:47:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位大侠,
     我现在遇到一个麻烦事,我仍旧不知道为什么描述性语言以及对象仓库不能用HTML元素中的所有存在的任意属性来定位,但是我封装的DOM函数却可以做到这一点而且貌似速度也不慢(我常遍历全部节点,如果没有Tag的话),以及所有的动作操作我感觉都能做到,我是不是应该把这个描述性语言废掉,然后完全由自己来解析呢?
    不知道有没有人跟我有一样的困惑??????
    或许是我对QTP还了解不深........
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2010-3-24 17:56:41 | 只看该作者
只要你描述属性的对象是唯一的就行~  DOM能做到QTP一样能做到~ DOM做不到的QTP也一样能做到~
如果你想全部用DOM,你觉得用QTP还有意义吗~~直接VBS用IE COM加DOM不就OK了?
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2010-3-24 18:08:56 | 只看该作者
呵呵,楼上的版主大侠,
    举个例子:我在 对象识别 里面给WebElement加上Name 和 onselectstart 等等属性,然后用SPY去找有这两个属性的DIV / SPAN元素,结果找回来都是空阿,请指教,可能我有什么没设置对巴,我理解就是如果SPY不到,应该在运行中也无法识别
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2010-3-24 22:09:54 | 只看该作者
你要找 DIV / SPAN元素 目的是什么? 就为找个框?
object identification 里面有的就是有的,没有的就没有了
或者你把整个页面的对象全部加进对象库里看看到底有没有你要的
其他的东西如果你要的话,可以通过以下得到html内容(和浏览器直接打开的源文件有一点格式区别)
browser("xxx").page("xxx").object.documentelement.innerhtml
documentelement可能拼错,后面想怎么就怎么吧
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2010-3-25 09:24:30 | 只看该作者
原帖由 skyzhu 于 2010-3-24 22:09 发表
你要找 DIV / SPAN元素 目的是什么? 就为找个框?
object identification 里面有的就是有的,没有的就没有了
或者你把整个页面的对象全部加进对象库里看看到底有没有你要的
其他的东西如果你要的话,可以通过以下 ...


我倒,我要找DIV/SPAN做什么? 难道你界面全是点击,而内容不需要校验吗?在现在的WEB框架生成的代码里面所有的东西都是用的DIV,甚至是CheckBox都是div做的

browser("xxx").page("xxx").object.documentelement.innerhtml ,这种表达方式不就是解析HTML字符了吗,这比起用DOM封装的现成的函数来说有多少差别,我的意思就是说QTP既然提供了描述性语言“属性名:= 值”这样的元素定位方式,他为什么不把所有HTML中能有的任意属性(包括用户自定义的,还有方法)都包含进去呢?难道很难吗?

哦,说错了,browser("xxx").page("xxx").object 这个获取到的对象就是DOM对象

[ 本帖最后由 cs_william 于 2010-3-25 09:40 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2010-3-25 13:22:00 | 只看该作者
那你可以这样,打开QTP并加载WEB,然后手动先操作页面到出现 结果信息或者其他相关的内容,把这些内容加到对象库里或者SPY一下,先看一下QTP自己是如何去识别的。
CheckBox 什么的识别完全不需要 DIV之类的信息,弄到CheckBox的属性就可以了,操作前后也是不一样的
注:IE一定要在QTP之后开,否则识别出来的东西会少很多

最好弄个样例的页面吧,否则说起来也麻烦
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2010-3-25 15:19:03 | 只看该作者

回复 6# 的帖子

呵呵,可能楼上还是没明白我的意思,我说的CheckBox用DIV作的的意思就是:页面中根本没有CheckBox,而是用DIV+CSS模拟出来的象一个CheckBox并且功能一样的东西,你可能对Google的GWT框架或者DIV+CSS不熟悉!

QTP识别我已经做了很多例子了,不能回答我的问题就算了吧,看还有没有人做过类似的研究!!!
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2010-3-25 15:27:01 | 只看该作者

回复 7# 的帖子

完全可以自己做dom解析,但你做之前需要评估一下你单独做一个库以自动化你的产品需要的工作量、资源多大,是否需要建立在开源工具的基础之上。。。。

QTP这个运行起来耗用的系统资源实在太大了。
回复 支持 反对

使用道具 举报

该用户从未签到

9#
 楼主| 发表于 2010-3-25 15:37:16 | 只看该作者

回复 8# 的帖子

呵呵,谢谢楼上的朋友,从你的帖子看,是不是意味着QTP的常规对象识别方法的确是不能识别HTML中所有的元素属性(包括用户随意定义的,以及方法名等等)吗?
   我现在已经自己用DOM封装好了一个通用的过程来识别任意元素的任意属性,执行起来貌似也很快,而且我的被测对象是Google GWT框架应用,HTML层次是无比的多,但是我考虑到QTP不会这么弱智,所以想努力一下,看是否我对QTP是不是还有不了解得东西,呵呵
回复 支持 反对

使用道具 举报

该用户从未签到

10#
 楼主| 发表于 2010-3-26 09:18:45 | 只看该作者
UP
回复 支持 反对

使用道具 举报

该用户从未签到

11#
发表于 2012-8-5 17:44:20 | 只看该作者
这么有意思的话题怎么就没人来回复了呢?????
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-16 12:24 , Processed in 0.074798 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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