51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 4498|回复: 18
打印 上一主题 下一主题

[原创] 请问,web测试中如何让QTP识别一个名字会变的按钮?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-3-25 15:30:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我做的是web测试,页面是一个用java编写的table控件,但table按钮上的名字后面用括号加了一个点击次数,点击次数是个变量,回放时点击次数已经加一,结果名字就变了,QTP无法再次识别这个按钮了。
我试过把它定义为虚拟对象,但是不行啊。请高手指点。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2008-3-25 15:37:07 | 只看该作者
可以用描述性编程的方法尝试一下。。。
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2008-3-25 16:08:19 | 只看该作者
可以用描述性编程的方法尝试一下。。。

请问如何使用描述性编程方法呢?
我试过使用按钮的其它属性来识别按钮,但好像这个按钮的属性不多,需要名字来识别。
我还尝试把名字中的数字使用Regular Expression表示,好像无效。
回复 支持 反对

使用道具 举报

  • TA的每日心情
    难过
    2017-7-25 17:19
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    4#
    发表于 2008-3-25 16:10:21 | 只看该作者
    可以用描述性编程来解决,举个简单列子
    set myButton= Description.Create
    myButton("html id")="Button1"
    Browser("****").Page("***").WebButton(myButton).click

    楼主试试,
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
    发表于 2008-3-25 16:18:57 | 只看该作者
    原帖由 stringw 于 2008-3-25 16:08 发表

    请问如何使用描述性编程方法呢?
    我试过使用按钮的其它属性来识别按钮,但好像这个按钮的属性不多,需要名字来识别。
    我还尝试把名字中的数字使用Regular Expression表示,好像无效。


    怎么会无效呢。。。你是如何使用正则表达式的。。。
    你在对象库中将那个数字变化的属性参数化->启用正则表达式->将变化的数字用正则表达式替换,比如替换为[0-9]*
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
     楼主| 发表于 2008-3-25 16:28:50 | 只看该作者
    请问html id是填什么呢?是原来按钮的名字吗?还是button1是原来按钮的名字?
    我的代码如下:
    Browser("****").Page("***").Link("网友评论(40)").Click
    每次增加一条评论,网友评论后的数字就加一。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
     楼主| 发表于 2008-3-25 16:32:26 | 只看该作者
    我把属性改为了 网友评论([0-9][0-9]),但是不行啊。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
    发表于 2008-3-25 16:49:31 | 只看该作者
    原帖由 stringw 于 25/3/2008 16:32 发表
    我把属性改为了 网友评论([0-9][0-9]),但是不行啊。

    用spy去查看那个按钮,选择其中一个属性,就OK啦,比如像上面几楼的人说的“html id”等。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    2017-7-25 17:19
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    9#
    发表于 2008-3-25 16:50:59 | 只看该作者
    原帖由 stringw 于 2008-3-25 16:28 发表
    请问html id是填什么呢?是原来按钮的名字吗?还是button1是原来按钮的名字?
    我的代码如下:
    Browser("****").Page("***").Link("网友评论(40)").Click
    每次增加一条评论,网友评论后的数字就加一。


    html id是button的一个属性,在页面的源文件中可以看到
    这个链接应该有一个固定的属性。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
     楼主| 发表于 2008-3-25 17:03:02 | 只看该作者
    这个东西好像是用ajax做的,没有链接属性,html id是空的,其它可以识别的属性好像都叫
    网友评论(41)
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11#
    发表于 2008-3-25 17:13:44 | 只看该作者
    原帖由 stringw 于 2008-3-25 16:32 发表
    我把属性改为了 网友评论([0-9][0-9]),但是不行啊。


    直接改属性当然是不行的。。。
    你有先点参数化的那个按钮,在正则表达式那里打勾,然后再写表达式么。。。


    或者用描述性编程语句来写(纯粹为了直观的表达。。。)
    Browser("****").Page("***").Link("innertext:=网友评论([0-9][0-9])").Click

    PS:正则表达式怎么写你再斟酌下吧~尤其是要包括第一次点的情况与第nnn...次点等情况~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12#
    发表于 2008-3-25 17:23:55 | 只看该作者
    还处在学习阶段``````嘿嘿```
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    13#
     楼主| 发表于 2008-3-25 17:37:45 | 只看该作者
    直接改属性当然是不行的。。。
    你有先点参数化的那个按钮,在正则表达式那里打勾,然后再写表达式么。。。


    我点了那个参数化,那个勾也打了。

    PS:正则表达式怎么写你再斟酌下吧~尤其是要包括第一次点的情况与第nnn...次点等情况~


    这句话是不是说位数不够?暂时我认为两位数字就够了。

    Browser("****").Page("***").Link("innertext:=网友评论([0-9][0-9])").Click

    这句也不能用。。。。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    14#
    发表于 2008-3-25 18:08:51 | 只看该作者
    原帖由 stringw 于 2008-3-25 17:37 发表


    这句也不能用。。。。

    那报什么错?贴出报错的原文~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    15#
    发表于 2008-3-25 19:35:08 | 只看该作者
    其实你的问题就是
    由于button的属性每次都会变,你需要对他的属性进行参数化
    可参照
    http://bbs.51testing.com/thread-104648-1-1.html
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    16#
    发表于 2008-3-27 14:17:08 | 只看该作者
    只要按钮位置不变 用虚拟对象即可 记住类型是button型
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    17#
    发表于 2008-3-28 13:28:17 | 只看该作者
    原帖由 stringw 于 2008-3-25 15:30 发表
    我做的是web测试,页面是一个用java编写的table控件,但table按钮上的名字后面用括号加了一个点击次数,点击次数是个变量,回放时点击次数已经加一,结果名字就变了,QTP无法再次识别这个按钮了。
    我试过把它定义为 ...


    可以用GetRoProperty这个方法,如:
    buttonName = …….table("index").GetRoProperty("name")
    …….table(buttonName).click

    你根据这个自己理解,应该就可以,“……“代表table按钮的父对象操作。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    18#
     楼主| 发表于 2008-3-28 17:33:31 | 只看该作者
    <quote>只要按钮位置不变 用虚拟对象即可 记住类型是button型</quote>
    这样不行,我试过了。仍然是报无法识别这个对象的错。
    我在流程中找到默认这个按钮就是打开的页面,所以暂时回避了这个问题。不用去点击它。
    谢谢大家的帮助。
    我会继续尝试别的方法,有结果的话,我一定会发上来。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    19#
    发表于 2008-3-28 23:55:47 | 只看该作者
    是否可以考虑下  正则表达式?
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-14 20:48 , Processed in 0.083067 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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