51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 4991|回复: 23
打印 上一主题 下一主题

[原创] qtp识别对象问题(急)

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-5-6 09:33:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位高手:
     
     在下在 编写QTP脚本的时候,遇到个问题
      碰到一个对象,属性为 innertext:=Western District & CentralKF-1198 (WES//MW)(0%C,0Min.)WES Spare 1(MW)(0%C,0Min.)Overflow(0%C,0Min.)

我进行了以下的操作但识别不出,请求帮忙

Browser("略").Page("略").WebElement("innertext:=Western District & CentralKF-1198 (WES//MW)(0%C,0Min.)WES Spare 1(MW)(0%C,0Min.)Overflow(0%C,0Min.)").click

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

使用道具 举报

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

    连续签到: 1 天

    [LV.1]测试小兵

    2#
    发表于 2008-5-6 09:37:03 | 只看该作者
    建议 你对不能识别的那个对象的innertext 的 值 使用 正则表达式试试。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3#
    发表于 2008-5-6 09:46:58 | 只看该作者
    QTP中默认是启用正则表达式的,所以你要将innertext:=后面的所有特殊字符前都加"\",至于哪些属于正则表达式中的特殊字符,请参见QTP帮助中的regular expressions->Defining

    [ 本帖最后由 hsjzfling 于 2008-5-6 09:57 编辑 ]
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.1]测试小兵

    4#
    发表于 2008-5-6 09:49:58 | 只看该作者
    你写的表达式里面,innertext的值里面既有& 、又有 % 这样的特殊字符,不知道这是否会影响到QTP的识别? 另外,你使用Ojbect Spy 看看,这个对象的属性有哪些?属性值分别是什么?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
    发表于 2008-5-6 10:17:43 | 只看该作者
    首先,你用heightlign识别下,可以识别到对象吗,如果可以,说明是对的,在webelement后加个object试下
    Browser("略").Page("略").WebElement("innertext:=Western District & CentralKF-1198 (WES//MW)(0%C,0Min.)WES Spare 1(MW)(0%C,0Min.)Overflow(0%C,0Min.)").object.click
    。如果不行,则按LS几位的说法试试。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
     楼主| 发表于 2008-5-6 11:14:08 | 只看该作者
    部分属性如图所显

    本帖子中包含更多资源

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

    x
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
     楼主| 发表于 2008-5-6 11:19:11 | 只看该作者
    是不是所有的字符 转换 都是统一的操作方法 在前面加"\"符号就可以了吗
    请求帮忙

    [ 本帖最后由 lhjtc8257 于 2008-5-6 11:29 编辑 ]
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
     楼主| 发表于 2008-5-6 14:34:38 | 只看该作者
    如何将RegularExpression属性值设置为False?
    请求帮助
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
    发表于 2008-5-6 17:15:43 | 只看该作者

    hh

    换个属性识别它吧
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
    发表于 2008-5-6 18:12:55 | 只看该作者
    描述性对象是支持正则表达式的
    所以,=后面的那个字符串,QTP会把它当作一串正则表达式处理
    而括号,斜杠,点号都是正则表达式里的保留字符,所以你用这么长的一串正则表达式,肯定是找不到对象的
    WebElement("innertext:=Western District & CentralKF-1198.*")
    应该可以,你试试
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11#
     楼主| 发表于 2008-5-7 20:24:46 | 只看该作者

    谢谢,我去试下
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12#
     楼主| 发表于 2008-5-8 10:34:31 | 只看该作者
    发现个小问题:
    这个webelement中的innertext属性是多行显示的
    如:
    Western District & Central
    KF-1198 (WES/MW)(0%C,0Min.)

    WES Spare 1(MW)(0%C,0Min.)

    Overflow(0%C,0Min.)
    如何识别?
    请教
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.1]测试小兵

    13#
    发表于 2008-5-8 10:38:53 | 只看该作者
    10楼朋友提供的建议应该没有问题,你去实验了吗?结果如何?使用了正则表达式后,QTP应该可以识别那个对象的,不管它的属性值有几行。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    14#
     楼主| 发表于 2008-5-8 13:11:32 | 只看该作者
    以我是这样写的:
    略.WebElement("innertext:=Western District & CentralKF-1198.*")
    略.WebElement("innertext:=Western District & CentralKF-1198.*")
    两种都试过了,还是不行
    提示: The webelement object's description matches more than one of the objects currently displayed in your application.
    Add additional properties to the object description in order to uniquely identify the objext.

    想问下, * 代替表达式省略的部分,只要单独的一个*就可以表示了吗,是不是还要其他的特殊符号

    [ 本帖最后由 lhjtc8257 于 2008-5-8 13:27 编辑 ]
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    15#
    发表于 2008-5-8 16:09:17 | 只看该作者
    matches more than one of the objects
    匹配到多个对象了
    你可以再加个属性,使它更好的匹配对象,index啊,坐标啊之类的
    WebElement("innertext:=Western District & CentralKF-1198.*,"index:=<index>")
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    16#
     楼主| 发表于 2008-5-9 10:39:06 | 只看该作者
    我仔细看了下,附图


    所有的WebRadioGroup的属性,基本相同
    只有outerhtml属性存在一点点不同


    1)outerhtml:=XXXXXXXXXXXXXXX(XXX),id="ABC"
    2)outerhtml:=XXXXXXXXXXXXXXX(XXX),id="EFG"

    请求帮助

    本帖子中包含更多资源

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

    x
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    17#
    发表于 2008-5-9 10:52:45 | 只看该作者
    总有不同的地方,用不同的地方进行识别就可以了,或者用index
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.1]测试小兵

    18#
    发表于 2008-5-9 11:36:14 | 只看该作者
    即使通过Object Spy识别出来的所有属性值都相同,那么你仍然可以在对象库里面 对此对象增加一个 Index 属性来识别
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    19#
     楼主| 发表于 2008-5-12 09:17:15 | 只看该作者
    学知识了,能简单说下,如何增加一个 Index 属性来识别

    (现在整个脚本就卡在这一个步骤上 )
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    20#
    发表于 2008-5-12 10:50:54 | 只看该作者
    有个疑问:在对象库中对两个属性相同的对象添加index属性,当qtp运行脚本时,实际对象roproperty中并没有index属性,那qtp是怎么区分其与toproperty对象库中的对象的?是第一个出现的Run-time对象与index=0自动匹配吗?
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-8 12:16 , Processed in 0.078240 second(s), 26 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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