51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2758|回复: 16
打印 上一主题 下一主题

[求助] 这个对象怎么描述?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2009-5-26 10:47:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位朋友高手能不能给我指点一下,下面代码中的winEdit对象要怎么去描述

这是脚本的部分代码
Window("RSA Authentication Manager").WinMenu("Menu").Select "User;Add User..."
Window("RSA Authentication Manager").Window("Add User").WinEdit("Edit").Set "RA0ADWG006"
Window("RSA Authentication Manager").Window("Add User").WinEdit("Edit_2").Set "RA0ADWG006"
Window("RSA Authentication Manager").Window("Add User").WinEdit("Edit_3").Set "RA0ADWG006"
Window("RSA Authentication Manager").Window("Add User").WinEdit("Edit_4").Set "RA0ADWG006"

这是编辑框的截图:


Edit的属性:



他的name是以Edit_(随机数在变),windows id 也是随机在变的,这个要怎么描述啊.....


我把脚本也放上,有朋友帮我看看吗?谢谢!(xp3,qtp9.0)

本帖子中包含更多资源

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

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

使用道具 举报

  • TA的每日心情
    难过
    2015-9-21 13:50
  • 签到天数: 4 天

    连续签到: 1 天

    [LV.2]测试排长

    2#
    发表于 2009-5-26 11:45:49 | 只看该作者
    【Window("RSA Authentication Manager").Window("Add User").WinEdit("Edit_2").Set "RA0ADWG006"】
    <<<中的WinEdit这样描述不行么?
    =======================================
    set WinEdit1= Description.Create()
                     WinEdit1 ("name").Value = "Edit_2"
                     WinEdit1("nativeclass").Value = "Edit"
    =======================================
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3#
     楼主| 发表于 2009-5-26 13:06:37 | 只看该作者

    回复 2# 的帖子

    跑不过啊,主要是Edit_2这个值在变,第一个是Edit,第二、第三、第四就是以Edit_+数字在变化着,这怎么办?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4#
    发表于 2009-5-26 13:39:56 | 只看该作者
    属性参数化,"Edit_"&i
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
     楼主| 发表于 2009-5-26 13:44:09 | 只看该作者

    回复 4# 的帖子

    i 怎么去捕获,麻烦能不能告知下!

    不知道原代码

    [ 本帖最后由 cswalkman 于 2009-5-26 13:46 编辑 ]
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    2015-9-21 13:50
  • 签到天数: 4 天

    连续签到: 1 天

    [LV.2]测试排长

    6#
    发表于 2009-5-26 13:45:33 | 只看该作者
    原帖由 cswalkman 于 2009-5-26 13:06 发表
    跑不过啊,主要是Edit_2这个值在变,第一个是Edit,第二、第三、第四就是以Edit_+数字在变化着,这怎么办?


    这个变化是有规律的么?有规律的按楼上的办法做做
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
    发表于 2009-5-26 13:56:11 | 只看该作者
    既然你SET的值都是一样的 那先获取页面有多少个这样的WEBEDIT 然后做个FOR循环 用参数i来参数化每个控件,让QTP自动去识别
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
     楼主| 发表于 2009-5-26 17:55:32 | 只看该作者

    回复 7# 的帖子

    能得到winedit的个数吗 呵呵
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
    发表于 2009-5-26 18:06:54 | 只看该作者
    可以的,但是必须知道你这些WEBEDIT的需求是如何的? 是一个页面显示固定数量,还是由于其他某种流程操作得到的结果.
    或者可以获取这个页面下的所有WEBEDIT类型的子对象数量,具体方法可见帮助文档关于childobject的方法.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
    发表于 2009-5-26 18:07:31 | 只看该作者

    回复 8# 的帖子

    set WinEdit1= Description.Create()
          WinEdit1("name").Value = "Edit"
    set all_object=Window("RSA Authentication Manager").Window("Add User").ChildObjects(WinEdit1)
          i=all_object.count()      'i就是这个个数。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11#
     楼主| 发表于 2009-5-27 11:32:01 | 只看该作者
    谢谢楼上的朋

    谢谢大家帮忙!!

    [ 本帖最后由 cswalkman 于 2009-5-27 11:38 编辑 ]
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12#
    发表于 2009-5-29 21:50:36 | 只看该作者

    回复 11# 的帖子

    楼上这个人的方法无法解决问题,
    首先会有"Edit_2"是因为你的这几个输入框都是同一种控件,但是属性有变化.为了在程序中区别起来,QTP就自动给与后面额加数字表示
    Window("RSA Authentication Manager").WinMenu("Menu").Select "User;Add User..."
    Window("RSA Authentication Manager").Window("Add User").WinEdit("Edit").Set "RA0ADWG006"
    Window("RSA Authentication Manager").Window("Add User").WinEdit("Edit_2").Set "RA0ADWG006"
    Window("RSA Authentication Manager").Window("Add User").WinEdit("Edit_3").Set "RA0ADWG006"
    Window("RSA Authentication Manager").Window("Add User").WinEdit("Edit_4").Set "RA0ADWG006"

    其次winid并不一定是这个控件的关键属性,
    你到tools--Object Identifcation
    设置关键属性如附件所示,再次录制.看看还有没有winID了

    只有属性变化在有规律的情况下,QTP才能识别,
    所以我们必须把那些无规律变化的控件属性去除.

    [ 本帖最后由 onlonely 于 2009-5-29 21:53 编辑 ]

    本帖子中包含更多资源

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

    x
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    13#
    发表于 2009-5-30 08:23:18 | 只看该作者

    回复 12# 的帖子

    """''''''"首先会有"Edit_2"是因为你的这几个输入框都是同一种控件,但是属性有变化.为了在程序中区别起来,QTP就自动给与后面额加数字表示'''''''''''''''''

    同学,这不都说的很明白嘛,你都知道qtp是如何识别的了。。。上面的方法没错的。。。而且很常用
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    14#
     楼主| 发表于 2009-6-3 10:38:44 | 只看该作者

    回复 12# 13# 的帖子

    谢谢你们

    先回复12#吧,在录制的时候关键属性里面有两个属性 attached text 和 nativeclass,辅助属性里面有 windows id, 实际录出来的只有后两个属性,因为实际情况我没法再去修改录制一遍,所以没法检验只留 attached text 后录制出的结果是什么!

    13# ,你说的方法的确不可行,因为name在这个脚本里不是QTP识别的属性,所以没有办法用name去描述这个Edit对象,也就更没办法去用这个方法获得Edit个数了!

    最有可能解决的方法是添加 x 和 y,所以我也就有了另一个疑问, abs_x 和x 有什么区别?
    谢谢大家!
    谢谢大家的帮组,希望大家继续说出自己的看法,大家一块儿学习!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    15#
    发表于 2009-6-5 11:28:22 | 只看该作者

    回复 14# 的帖子

    我这提供一个方法,你最好在对象库中把那个变化的webedit的windows id那个属性直接删除。因为他是变化的所以会引起一些错误 ,直接把它删除吧。对不对我也不清楚,不过我有试过这种情况,把变化的属性去掉就可以跑通的
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    16#
    发表于 2009-6-5 11:53:30 | 只看该作者

    回复 14# 的帖子

    晕,我写的name只是一个方法,你可以用spy看看哪个属性可行,自己找啊。。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    17#
     楼主| 发表于 2009-6-5 14:12:28 | 只看该作者

    回复 15# 16# 的帖子

    谢谢你们啊  16#   我理解你的意思了,只是它的属性都已经贴出来了,谢谢你

    15#  你说的方法我去试了试  还是不行的  不过最后终于解决了  就是换低级录制模式

    thanks everybody!
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-27 15:30 , Processed in 0.079318 second(s), 29 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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