51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 4639|回复: 20
打印 上一主题 下一主题

[原创] QTP对一些控件的识别都用什么属性

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2012-8-30 13:25:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
比如对web控件,对page主要是用index识别,webEdit由name识别,button由name识别,webElement由intertext识别。那flex的一些常用控件由哪个属性识别??
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2012-8-30 13:37:58 | 只看该作者
本帖最后由 xjwldlover 于 2012-8-30 13:41 编辑

编辑了半天,我还是放弃回答了,你对QTP的对象识别方式理解貌似有点偏差~
没能帮到你
回复 支持 反对

使用道具 举报

  • TA的每日心情
    无聊
    2020-12-8 11:20
  • 签到天数: 605 天

    连续签到: 1 天

    [LV.9]测试副司令

    3#
    发表于 2012-8-30 15:45:17 | 只看该作者
    介个没有什么规定的说法吧,这个问题很难回答。。。。只要能识别对象,你管它用的是什么属性去识别的啦。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4#
     楼主| 发表于 2012-8-30 16:56:47 | 只看该作者
    回复 2# xjwldlover


        难道不是这样子吗?对一些控件在object identification里面是写好了由哪些属性来识别这个控件的呀。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
    发表于 2012-8-30 17:19:47 | 只看该作者
    回复 4# moshuang

    你说的QTP识别属性其实是Tools-Object Identification中控件的Mandatory Properties(MP)强制属性和Assistive Properties (AP)辅助属性。一般情况下QTP根据MP和AP可以唯一确定一个对象,这里面包含的其实是一个经验值。当根据这些属性无法唯一确定一个对象时,QTP的智能识别(Smart Identification)便发挥作用了,比如你说的PAGE使用index来唯一确定。这其实不是Page本身的属性,是QTP没招了,只能根据他们顺序来定义。
    但绝大多数情况下,我们是不允许使用智能识别,因为这代表这我们没有准确找到目标对象。这时我们
    给对象库的对象添加属性,比如Hwnd,来唯一确定这个对象。
    总的来说,我们可以使用“对象(TO)的所有属性”来查找一个页面的运行时对象(RO),QTP为了方便我们,默认先使用“一些几乎必定要用的属性”来描述这个对象,如果能唯一确定一个对象,那我们就无须再改了,如果不能我就再手动添加属性。

    总结:QTP识别对象是根据对象库属性。你说的那些属性,是QTP默认属性的一个子集,QTP默认属性又是对象属性的子集

    我的描述不够清晰,等以后我理解再深刻点时再编辑吧,希望高手能予以指正~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
    发表于 2012-8-30 18:45:55 | 只看该作者
    Object Identification 的作用我认为有三个功能,如有错误请指正,谢谢
    ①辨识对象类型,比如webEdit,JavaButton什么的
    ②便于修改对象库。虽然QTP本质是使用对象属性来匹配页面对象。但如果在对象库中所有的对象都是一个类型,一个样子,你怎么去修改。挨个看属性还不如不用这个工具。于是QTP使用Mandatory属性来确定这个控件的类型和显示名称。你可以很容易找到这个对象并修改。
    ③辨识出对象类型后提供对象的方法。比如你webButton().Object加一个点后,后面提示那么多方法。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
     楼主| 发表于 2012-8-31 14:37:06 | 只看该作者
    回复 6# xjwldlover


        非常非常感谢你的回答。明白了。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
     楼主| 发表于 2012-8-31 14:37:53 | 只看该作者
    回复 5# xjwldlover


        我不太明白这一句话“给对象库的对象添加属性,比如Hwnd,来唯一确定这个对象。”。Hwnd什么意思?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
     楼主| 发表于 2012-8-31 14:40:01 | 只看该作者
    回复 5# xjwldlover


        我这样问,是因为很多flex控件的属性里面有automationindex和automationname,这样子我的脚本总因为这个index无法回放成功。我删除了有时候它又说对象找不到。真是不知道该怎么做了。这个automationindex是加载页面时后自动生成的还是开发那边自动生成的,一旦返还给开发,这些就又变了??
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
    发表于 2012-8-31 15:30:44 | 只看该作者
    回复 8# moshuang


        hwnd是web对象的一个句柄属性,可以唯一标识这个对象。本质上是和name一样,是Object的一个属性,只不过它具有唯一性。但它是会变的哦,所以可能不太好抓。一般只有在确定browser时使用它。其他类型的对象我就不知道是否有这个属性了,推测应该有类似的属性吧
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11#
     楼主| 发表于 2012-8-31 16:15:13 | 只看该作者
    回复 10# xjwldlover


        能举个例子吗?针对browser的。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12#
    发表于 2012-8-31 16:51:56 | 只看该作者

    1. Set IE = CreateObject("InternetExplorer.Application")
    2. IE.Visible = True
    3. ie.Navigate "www.baidu.com"
    4. hwnd = ie.HWND
    5. Browser("目标").SetTOProperty "hwnd", hwnd
    复制代码

    不知道是否我的解释有偏差啊。我的意思不是时hwnd有多好用。而是说对象的属性‘集合’的使用很灵活,作用很强大~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    13#
     楼主| 发表于 2012-9-3 16:16:14 | 只看该作者
    回复 12# xjwldlover


        那它也就是唯一标示IE,它不能唯一标示控件呀
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    14#
    发表于 2012-9-3 17:33:28 | 只看该作者
    回复 13# moshuang


       呵呵 就是举个例子,控件肯定也有其他可以唯一标识的‘属性集’啊。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    15#
     楼主| 发表于 2012-9-4 15:16:08 | 只看该作者
    回复 14# xjwldlover


        唯一的属性,我的对象库里的属性我去掉automationindex值后是可以的。可是,我就是想知道怎样在object identification里面去掉这个属性。可是在那里偏偏不能用这个configure,你说的英文帮助文档里有吗?传给我吧。F1里没有

    本帖子中包含更多资源

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

    x
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    16#
    发表于 2012-9-4 18:06:09 | 只看该作者
    本帖最后由 xjwldlover 于 2012-9-5 10:15 编辑

    找到了
    好像这个文件无法独立运行,如果不行的话,你就到你自己QTP安装目录里找这个英文文档吧
    HP\QuickTest Professional\help

    本帖子中包含更多资源

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

    x
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    17#
    发表于 2012-9-5 00:51:25 | 只看该作者
    object identification可以查看的。。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    18#
    发表于 2012-9-5 11:25:03 | 只看该作者
    这事整愁了,我直接把帮助文档里的这段示例发给你吧

    1. Dim qtApp
    2. Dim qtIdent
    3. Dim qtWinListIdent
    4. Dim intPosition


    5. Set qtApp = CreateObject("QuickTest.Application")
    6. qtApp.Launch
    7. qtApp.Visible = True

    8. Set qtIdent = qtApp.Options.ObjectIdentification
    9. Set qtWinListIdent = qtIdent.Item("WinList")

    10. qtIdent.ResetAll
    11. qtWinListIdent.OrdinalIdentifier = "Index"


    12. intPosition = qtWinListIdent.MandatoryProperties.Find("nativeclass")
    13. qtWinListIdent.MandatoryProperties.Remove intPosition
    14. If qtWinListIdent.AvailableProperties.Find("items count") <> -1 Then
    15.     qtWinListIdent.MandatoryProperties.Add "items count" '
    16. End If


    17. qtWinListIdent.AssistiveProperties.RemoveAll
    18. qtWinListIdent.AssistiveProperties.Add "all items"
    19. qtWinListIdent.AssistiveProperties.Add "width", 1
    20. qtWinListIdent.AssistiveProperties.Add "height", -1
    21. qtWinListIdent.AssistiveProperties.MoveToPos 2, 1

    22. qtWinListIdent.EnableSmartIdentification = True
    23. If qtWinListIdent.BaseFilterProperties.Count = 0 Then
    24.     qtWinListIdent.BaseFilterProperties.Add "x"
    25.     qtWinListIdent.BaseFilterProperties.Add "y"
    26. End If
    27. qtWinListIdent.OptionalFilterProperties.Add "abs_x", 1
    28. qtWinListIdent.OptionalFilterProperties.Add "abs_y", 2

    29. Set qtWinListIdent = Nothing
    30. Set qtIdent = Nothing
    31. Set qtApp = Nothing
    复制代码
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    19#
     楼主| 发表于 2012-9-5 16:41:18 | 只看该作者
    回复 18# xjwldlover


        这代码完全看不懂呀。我的意思是说,能不能怎样让我把flex插件里的configure项改动,让他的智能识别项减少,没有automationindex,这样脚本就不用每次去掉这个值。这段代码和这里有关系吗?谢谢你了,太谢谢了。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    20#
    发表于 2012-9-5 17:59:26 | 只看该作者
    回复  xjwldlover


        这代码完全看不懂呀。我的意思是说,能不能怎样让我把flex插件里的configure项 ...
    moshuang 发表于 2012-9-5 16:41


    这段代码的意思就是取控件WinList,重新定义控件的强制识别属性、辅助识别和智能识别标志。
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-17 06:23 , Processed in 0.082298 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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