51Testing软件测试论坛

标题: QTP 关于动态对象,求助 [打印本页]

作者: chissie    时间: 2010-12-29 11:49
标题: QTP 关于动态对象,求助
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那样的列表??
菜鸟请求帮助。。。。  ,请各位高手不宁赐教啊~~~
作者: chissie    时间: 2010-12-29 11:56
在线等哦~~~~
作者: arivn    时间: 2010-12-29 13:21
可以使用一个正则表达式来处理
作者: chissie    时间: 2010-12-29 14:14
可以说详细点么我用QTP才几天。
正则表达式 该怎么用?
  是否 “Browser("Test Web").Page("Test Web").Frame("Frame").Link("test?Link").Click”
这样?
作者: chissie    时间: 2010-12-29 14:17
在网上找到一个正则表达式的例子
原来是这样子“browser(“浏览器”).Page(“店铺管理平台”).Link(“innertext:=”& “宝贝管理”&”\(\d+\)”).Click”。
  谢谢 arivn 的提醒 ,我才终于寻觅了一个可靠方向!
作者: chissie    时间: 2010-12-29 15:06
“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}\)
都是错的  该怎么写?
作者: skyzhu    时间: 2010-12-29 15:53
test\d{1}Link\(test\d{1},test\d{1}\)
test\d{1}Link\(test\d{1}\,test\d{1}\)
正则是对的

关键在于到底是不是innertext就能确认对象了
可先尝试不使用正则属性值
另外使用正则属性后,是不是会识别出多个对象,这也是会出错的
作者: lantianwei    时间: 2010-12-29 16:15
对象库里开启正则表达式 然后填写表达式为.*link
作者: chissie    时间: 2010-12-29 16:29
解决了  谢谢各位
作者: chissie    时间: 2010-12-29 16:34
把那个Link对象用了正则表达式后,我想插入一个checkPoint ,确定Link的名称
但是点击 Insert Standard Ceckpoint 的时候 报这个错[attach]67609[/attach]
是什么原因呢?
作者: chissie    时间: 2010-12-29 17:04
重新录制了一次  又没有报这个错了

再问个问题哈
Browser("Test Web").Page("Test Web").Frame("Frame")
如果我想知道这个frame是否包含“abcdefghijklmn”这个一串字符串
语法应该怎么写的?   对VB很不熟呐{:4_84:}   举步维艰啊。。。。
作者: arivn    时间: 2010-12-30 08:34
这个问题有多种解决方法,你可以直接去看那个控件中是否有那个值

也可以将这个页面设置成一个对象,读取页面的文本元素是否包括这个字段
作者: bin_51    时间: 2011-1-7 17:30
object .GetToProperty()
作者: fanjianmin    时间: 2011-1-11 20:59
学习了,嘿嘿
作者: hzr2006    时间: 2011-6-17 19:54
恩 正是我现在想知道的问题,有思路了哈哈




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2