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:},请各位高手不宁赐教啊~~~ 在线等哦~~~~{:4_106:} 可以使用一个正则表达式来处理 可以说详细点么{:4_101:}我用QTP才几天。
正则表达式 该怎么用?
是否 “Browser("Test Web").Page("Test Web").Frame("Frame").Link("test?Link").Click”
这样? 在网上找到一个正则表达式的例子
原来是这样子“browser(“浏览器”).Page(“店铺管理平台”).Link(“innertext:=”& “宝贝管理”&”\(\d+\)”).Click”。
谢谢 arivn 的提醒 ,我才终于寻觅了一个可靠方向! “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}\)
都是错的该怎么写? test\d{1}Link\(test\d{1},test\d{1}\)
test\d{1}Link\(test\d{1}\,test\d{1}\)
正则是对的
关键在于到底是不是innertext就能确认对象了
可先尝试不使用正则属性值
另外使用正则属性后,是不是会识别出多个对象,这也是会出错的 对象库里开启正则表达式 然后填写表达式为.*link :loveliness:解决了谢谢各位 把那个Link对象用了正则表达式后,我想插入一个checkPoint ,确定Link的名称
但是点击 Insert Standard Ceckpoint 的时候 报这个错
是什么原因呢? 重新录制了一次又没有报这个错了:L
再问个问题哈
Browser("Test Web").Page("Test Web").Frame("Frame")
如果我想知道这个frame是否包含“abcdefghijklmn”这个一串字符串
语法应该怎么写的? 对VB很不熟呐{:4_84:} 举步维艰啊。。。。 这个问题有多种解决方法,你可以直接去看那个控件中是否有那个值
也可以将这个页面设置成一个对象,读取页面的文本元素是否包括这个字段 object .GetToProperty() 学习了,嘿嘿:loveliness: 恩 正是我现在想知道的问题,有思路了哈哈
页:
[1]