51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 20331|回复: 75
打印 上一主题 下一主题

[原创] 我终于把qtp识别对象相关的东西研究个一知半解了。特开此贴,解答疑问。

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2007-8-1 18:29:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
谁有关于不能识别对象的问题都来问吧。

超新手就不要问了阿。。。我研究的比较深入的。。。。sdlkfj3

我不是专家,只是这两天在看相关的帮助。如果你有问题可以留下来一起研究。


如果你看到相关的问题你曾遇到过,并知道解决办法,请留下脚印。


我只是为了赚点分,同时积累一个识别对象的问题汇总帖子。呵呵。

[ 本帖最后由 jackymail 于 2007-8-2 09:57 编辑 ]

评分

参与人数 1综合技术指数 +20 收起 理由
fishy + 20 呵呵,这种帖子应该早就加分的,不好意思啊

查看全部评分

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

使用道具 举报

该用户从未签到

推荐
 楼主| 发表于 2007-8-2 09:55:08 | 只看该作者
不好意思没太看明白你遇到什么困难。
如果属性不能识别,就换一个。
参考楼上的那个方法。

原帖由 billygao 于 2007-8-2 06:05 发表
楼主,我也有一个问题,我现在在测试一个用C++写的报税软件。每次读文件时这个软件会以文件的公司名称为识别标准,例如打开一个文件后,如果有什么确认窗口的时候,QTP 就会读为Windows("软件名称").Dialog("公 ...
回复 支持 1 反对 0

使用道具 举报

  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    2#
    发表于 2007-8-1 18:49:02 | 只看该作者
    楼主能主动乐意回答朋友们的问题,值得表扬。 怎么没有人来支持一下呢? 另外,也建议楼主去回答以前的 有关识别对象的问题的帖子。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3#
    发表于 2007-8-1 19:24:12 | 只看该作者
    为什么有些对象Object Spy时只能看到Test Object Properties,Runtime Object Properties却是不可见的?

    如果QTP自己都不能识别这种对象的Runtime Object Properties,那QTP怎么实现这种对象的Test Object Properties?

    呵呵,一个小问题,LZ出招吧:)

    [ 本帖最后由 yabest 于 2007-8-1 19:25 编辑 ]
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4#
    发表于 2007-8-1 20:54:09 | 只看该作者
    呵呵,正好有一个对象识别的问题.

    在页面上有一个树状结构,栏目都识别为webelement, 我用innertext和index属性来识别

    现在树上面有一个叫"电影"和一个叫"D电影"的栏目,发现我使用
    leftframe.WebElement("innertext:="&datatable.value("栏目",dtLocalSheet),"index:=1").click时,总是点在了"电影"上


    leftframe是定义好的树所在的frame
    datatable.value("栏目",dtLocalSheet) = "D电影"

    怎么会识别出错呢?  我spy了这两个栏目的innertext属性,一个是"电影".一个是"D电影"没错
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
    发表于 2007-8-1 21:14:51 | 只看该作者
    怎没解答呢?~sdlkfj4
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
    发表于 2007-8-1 22:55:14 | 只看该作者
    LZ迟早要疯掉的~~~sdlkfj5
    我再提一个吧,描述性编程中,对象为:winlist,text属性和attachedtext属性都不唯一,只有winid属性唯一,但QTP不能识别此对象,请问,如何解决?我正好就遇到了这个问题。现在头有点大。搞了一个晚上了。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
     楼主| 发表于 2007-8-1 23:10:40 | 只看该作者
    Test object properties are the properties whose values are captured from the objects in your Web site or application when you record your test. QuickTest uses the values of these properties to identify run-time objects in your application during a run session.

    你的问题我看到第一眼就能猜个大概,不知道对不对,你说的是flash一类的东西。

    qtp 无法捕捉这种控件的实时信息,只能对他的坐标等进行简单的描述,所以用这些属性形成了对象库里对象。
    比如flash被识别成winobject.这个时候你可以使用winobject的所有方法。

    你的无法查到run-time信息的对象属于哪一类对象你就可以使用哪一类方法。

    大致如此。欢迎继续讨论。

    原帖由 yabest 于 2007-8-1 19:24 发表
    为什么有些对象Object Spy时只能看到Test Object Properties,Runtime Object Properties却是不可见的?

    如果QTP自己都不能识别这种对象的Runtime Object Properties,那QTP怎么实现这种对象的Test Object P ...
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
     楼主| 发表于 2007-8-1 23:30:36 | 只看该作者
    我建议你在使用那个变量之前先打印一下,看看是否能得到 d电影

    还有你的index是根本用不到的,如果真的能够区分的话。

    关于对象库:

    罗嗦一下,你的object identification里面肯定设置的默认ordinal identifier是index.

    If mandatory property values are not sufficient to uniquely identify the object within its parent object, QuickTest adds some assistive properties and/or an ordinal identifier to create a unique description.

    如果你在对象库里看到有index这个属性生成,应该说明你的电影和d电影是无法区分的。anyway,我不知道你用的spy还是对象库。

    假设你使用了对象库:

    存在这样一个现象,就是你明明看到d电影和电影是可以区分的。但是实际在下次程序运行的时候,有的属性发生了改变,比如inner html
    ,因为你的description properties里面包含了需要检查inner html这个属性。

    如果没有使用对象库:

    应该只用d电影就能找到你需要的对象。

    检查一下程序,明天继续。

    原帖由 danmy 于 2007-8-1 20:54 发表
    呵呵,正好有一个对象识别的问题.

    在页面上有一个树状结构,栏目都识别为webelement, 我用innertext和index属性来识别

    现在树上面有一个叫"电影"和一个叫"D电影"的栏目,发现我使用
    leftframe.WebElement( ...
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
     楼主| 发表于 2007-8-1 23:41:34 | 只看该作者
    有唯一的属性qpt肯定能识别,你如果报错说是别出多个,就说明不唯一,用的属性不对。
    如果的确唯一并且无法识别。就说明在程序运行时,winid属性改变。

    你方便的话把你的代码贴出来一部分看看。



    原帖由 MarsNoNo 于 2007-8-1 22:55 发表
    LZ迟早要疯掉的~~~sdlkfj5
    我再提一个吧,描述性编程中,对象为:winlist,text属性和attachedtext属性都不唯一,只有winid属性唯一,但QTP不能识别此对象,请问,如何解决?我正好就遇到了这个问题。现在头有 ...
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    10#
    发表于 2007-8-1 23:49:21 | 只看该作者
    支持楼主!向楼主学习!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11#
    发表于 2007-8-1 23:59:48 | 只看该作者
    我有一个下拉框对象
    在一台机器上录制这个对象时被识别为weblist
    在另一台上录制时却被识别成了webelement
    两台机器录制的是同一个控件,为什么会有两种结果,是不是有什么设置可以控制这些东东?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12#
     楼主| 发表于 2007-8-2 00:04:24 | 只看该作者
    你点鼠标的位置不一致。

    原帖由 xihong2004 于 2007-8-1 23:59 发表
    我有一个下拉框对象
    在一台机器上录制这个对象时被识别为weblist
    在另一台上录制时却被识别成了webelement
    两台机器录制的是同一个控件,为什么会有两种结果,是不是有什么设置可以控制这些东东?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    13#
    发表于 2007-8-2 00:34:02 | 只看该作者
    我当初也是这么认为
    可是我点的是同一个位置,两台机器就是不一样
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    14#
     楼主| 发表于 2007-8-2 00:35:21 | 只看该作者
    你有几条数据,如果2条以上,每次都是index:=1  这样不太好吧。。。。不会index总是1吧,index哪儿来的?

    原帖由 danmy 于 2007-8-1 20:54 发表
    呵呵,正好有一个对象识别的问题.

    在页面上有一个树状结构,栏目都识别为webelement, 我用innertext和index属性来识别

    现在树上面有一个叫"电影"和一个叫"D电影"的栏目,发现我使用
    leftframe.WebElement( ...
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    15#
     楼主| 发表于 2007-8-2 00:38:47 | 只看该作者

    太晚了

    睡觉,今天又没有学习lr....忏悔,明天补上。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    16#
    发表于 2007-8-2 00:53:31 | 只看该作者

    回复 #1 jackymail 的帖子

    用QTP添加C++对象时都识别为winobject("ATL..."),有没有什么方法能添加为可描述性对象呢?谢谢。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    17#
    发表于 2007-8-2 06:05:06 | 只看该作者
    楼主,我也有一个问题,我现在在测试一个用C++写的报税软件。每次读文件时这个软件会以文件的公司名称为识别标准,例如打开一个文件后,如果有什么确认窗口的时候,QTP 就会读为Windows("软件名称").Dialog("公司名称"). 其实这倒好识别,但是问题是,如果公司名称稍微过长,那个dialog里面的名字就会被缩减,我录制了一些操作后,也只能猜个大概的长度,但是Object Repository里面显示的却是完整的公司名称。这点很让我头疼,因为我想实现一组文件的批量测试,这样一来,我就很难用简易的代码实现这段测试了.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    18#
    发表于 2007-8-2 09:21:04 | 只看该作者
    谢谢LZ的解答!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    19#
     楼主| 发表于 2007-8-2 09:53:07 | 只看该作者
    不明白你说的winobject("ATL...")是什么意思。
    是只有alt被识别吗?用spy能看到其他属性吗?
    如果能:在tools->object identification->里面可以设置Mandatory properties 和 assistive properties,设置什么就记录了什么。

    如果不能:我不知道你得c++程序是什么样的。应该除了那种需要插件的程序都能够正确获取对象吧。如果qtp识别不出,我也不太清楚,你可以在问问别人。

    原帖由 hejianliang 于 2007-8-2 00:53 发表
    用QTP添加C++对象时都识别为winobject("ATL..."),有没有什么方法能添加为可描述性对象呢?谢谢。
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-22 16:01 , Processed in 0.081471 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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