chissie 发表于 2010-12-29 11:49:11

QTP 关于动态对象,求助

QTP的 web测试
      情况如下:每个用户登录成功后有一个动态链接,我要检查对应链接页面里显示的内容。
      如: 用户test1的页面链接名称为 test1Link
               用户test2的页面链接名称为 test2Link
      步骤: 我用一个用户(test1)登录录制,
                点击Link对象test1Link,
                进入相关页面 checkPoint该页面的文本值是否为test1权限该看到的。
      脚本:   
Browser("Test Web").Page("Test Web").WebEdit("userName").Set DataTable("userName", dtGlobalSheet)
Browser(Test Web").Page("Test Web").WebEdit("password").SetSecure "4d1a9453a76a623953e56628279de8a4d422"
Browser("Test Web").Page("Test Web-").Image("login").Click
Browser("Test Web").Page("Test Web").Frame("Frame").Link("test1Link").Click
   问题:在run的时候,跑到用户为test2时 Browser("Test Web").Page("Test Web").Frame("Frame").Link("test1Link").Click
这一句就会报错,这个Link对象没有个统一的名称,每一次的名称都不一样,应该怎么将这个动态对象也设置成像参数的data table那样的列表??
菜鸟请求帮助。。。。{:4_102:},请各位高手不宁赐教啊~~~

chissie 发表于 2010-12-29 11:56:43

在线等哦~~~~{:4_106:}

arivn 发表于 2010-12-29 13:21:12

可以使用一个正则表达式来处理

chissie 发表于 2010-12-29 14:14:41

可以说详细点么{:4_101:}我用QTP才几天。
正则表达式 该怎么用?
是否 “Browser("Test Web").Page("Test Web").Frame("Frame").Link("test?Link").Click”
这样?

chissie 发表于 2010-12-29 14:17:41

在网上找到一个正则表达式的例子
原来是这样子“browser(“浏览器”).Page(“店铺管理平台”).Link(“innertext:=”& “宝贝管理”&”\(\d+\)”).Click”。
谢谢 arivn 的提醒 ,我才终于寻觅了一个可靠方向!

chissie 发表于 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}\)
都是错的该怎么写?

skyzhu 发表于 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就能确认对象了
可先尝试不使用正则属性值
另外使用正则属性后,是不是会识别出多个对象,这也是会出错的

lantianwei 发表于 2010-12-29 16:15:58

对象库里开启正则表达式 然后填写表达式为.*link

chissie 发表于 2010-12-29 16:29:03

:loveliness:解决了谢谢各位

chissie 发表于 2010-12-29 16:34:04

把那个Link对象用了正则表达式后,我想插入一个checkPoint ,确定Link的名称
但是点击 Insert Standard Ceckpoint 的时候 报这个错
是什么原因呢?

chissie 发表于 2010-12-29 17:04:53

重新录制了一次又没有报这个错了:L

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

arivn 发表于 2010-12-30 08:34:00

这个问题有多种解决方法,你可以直接去看那个控件中是否有那个值

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

bin_51 发表于 2011-1-7 17:30:05

object .GetToProperty()

fanjianmin 发表于 2011-1-11 20:59:37

学习了,嘿嘿:loveliness:

hzr2006 发表于 2011-6-17 19:54:47

恩 正是我现在想知道的问题,有思路了哈哈
页: [1]
查看完整版本: QTP 关于动态对象,求助