51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3608|回复: 14
打印 上一主题 下一主题

[原创] QTP 关于动态对象,求助

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2010-12-29 11:49:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
QTP的 web测试
      情况如下:每个用户登录成功后有一个动态链接,我要检查对应链接页面里显示的内容。
        如: 用户test1  的页面链接名称为 test1Link
               用户test2  的页面链接名称为 test2Link
      步骤: 我用一个用户(test1)登录录制,
                点击Link对象test1Link,
                进入相关页面 checkPoint该页面的文本值是否为test1权限该看到的。
      脚本:
  1.    
  2. Browser("Test Web").Page("Test Web").WebEdit("userName").Set DataTable("userName", dtGlobalSheet)
  3. Browser(Test Web").Page("Test Web").WebEdit("password").SetSecure "4d1a9453a76a623953e56628279de8a4d422"
  4. Browser("Test Web").Page("Test Web-").Image("login").Click
  5. Browser("Test Web").Page("Test Web").Frame("Frame").Link("test1Link").Click
  6.    
复制代码
问题:在run的时候  ,跑到用户为test2时
  1. Browser("Test Web").Page("Test Web").Frame("Frame").Link("test1Link").Click
复制代码
这一句就会报错,这个Link对象没有个统一的名称,每一次的名称都不一样,应该怎么将这个动态对象也设置成像参数的data table那样的列表??
菜鸟请求帮助。。。。  ,请各位高手不宁赐教啊~~~
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2010-12-29 11:56:43 | 只看该作者
在线等哦~~~~
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2010-12-29 13:21:12 | 只看该作者
可以使用一个正则表达式来处理
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2010-12-29 14:14:41 | 只看该作者
可以说详细点么我用QTP才几天。
正则表达式 该怎么用?
  是否 “Browser("Test Web").Page("Test Web").Frame("Frame").Link("test?Link").Click”
这样?
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2010-12-29 14:17:41 | 只看该作者
在网上找到一个正则表达式的例子
原来是这样子“browser(“浏览器”).Page(“店铺管理平台”).Link(“innertext:=”& “宝贝管理”&”\(\d+\)”).Click”。
  谢谢 arivn 的提醒 ,我才终于寻觅了一个可靠方向!
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2010-12-29 15:06:58 | 只看该作者
“innertext:=test1Link(test1,test1)“
只替换test1Link(test1,test1)中的1,只替换为数字
它的正则表达式该怎么写?
test*Link(test*,test*)
test?Link(test?,test?)
test\d{1}Link(test\d{1},test\d{1})
test\d{1}Link\(test\d{1},test\d{1}\)
test\d{1}Link\(test\d{1}\,test\d{1}\)
都是错的  该怎么写?
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2010-12-29 15:53:20 | 只看该作者
test\d{1}Link\(test\d{1},test\d{1}\)
test\d{1}Link\(test\d{1}\,test\d{1}\)
正则是对的

关键在于到底是不是innertext就能确认对象了
可先尝试不使用正则属性值
另外使用正则属性后,是不是会识别出多个对象,这也是会出错的
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2010-12-29 16:15:58 | 只看该作者
对象库里开启正则表达式 然后填写表达式为.*link
回复 支持 反对

使用道具 举报

该用户从未签到

9#
 楼主| 发表于 2010-12-29 16:29:03 | 只看该作者
解决了  谢谢各位
回复 支持 反对

使用道具 举报

该用户从未签到

10#
 楼主| 发表于 2010-12-29 16:34:04 | 只看该作者
把那个Link对象用了正则表达式后,我想插入一个checkPoint ,确定Link的名称
但是点击 Insert Standard Ceckpoint 的时候 报这个错
是什么原因呢?

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

该用户从未签到

11#
 楼主| 发表于 2010-12-29 17:04:53 | 只看该作者
重新录制了一次  又没有报这个错了

再问个问题哈
Browser("Test Web").Page("Test Web").Frame("Frame")
如果我想知道这个frame是否包含“abcdefghijklmn”这个一串字符串
语法应该怎么写的?   对VB很不熟呐{:4_84:}   举步维艰啊。。。。
回复 支持 反对

使用道具 举报

该用户从未签到

12#
发表于 2010-12-30 08:34:00 | 只看该作者
这个问题有多种解决方法,你可以直接去看那个控件中是否有那个值

也可以将这个页面设置成一个对象,读取页面的文本元素是否包括这个字段
回复 支持 反对

使用道具 举报

  • TA的每日心情
    奋斗
    2015-11-16 14:40
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    13#
    发表于 2011-1-7 17:30:05 | 只看该作者
    object .GetToProperty()
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    14#
    发表于 2011-1-11 20:59:37 | 只看该作者
    学习了,嘿嘿
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    15#
    发表于 2011-6-17 19:54:47 | 只看该作者
    恩 正是我现在想知道的问题,有思路了哈哈
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-12 04:16 , Processed in 0.088966 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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