使用描述性语言,属性值中带有括号,qtp无法识别??
按钮的截图见附件使用spy抓取到的按钮的label值为"刷新(F)"、"关闭(C)"、"帮助(H)"
但是,使用JavaWindow("title:=窗口","displayed:=1").JavaButton("label:=关闭(C)").Click 总是报错,JavaButton对象不能识别
但是,如果修改成JavaWindow("title:=窗口","displayed:=1").JavaButton("label:=关闭.*").Click 却是可行的。
上面还可以使用.*混过去,但是有个需求,是JavaWindow右键菜单JavaMenu的所有名称,然后,在依次打开每个JavaMenu菜单。
写了一个function,
Set Desc = Description.Create()
Desc("to_class").Value = "JavaMenu"
Desc("enabled").Value = "1"
Desc("displayed").Value = "1"
wait (1)
set subMenuObj = JavaWindow("title:=窗口","displayed:=1").ChildObjects(Desc)
subMenuNum = subMenuObj.Count
For i = 0 To subMenuNum - 1
subStr = subMenuObj(i).getROProperty("label")
Set ZxFindJavaMenuObj = JavaWindow("title:=窗口","displayed:=1").JavaMenu("label:=" & Trim(subStr))
ZxFindJavaMenuObj.select
Next
如果subStr包含(),就无法识别,无法打开,其他的值都可以,中文,英文,小数点,/,数字等都试过了
是不是括号需要转义,我把它转成asc码,也无法识别,JavaWindow("title:=窗口","displayed:=1").JavaMenu("label:=菜单" &chr(40)&"C"&chr(41))
请问高手们,如何解决啊,谢谢大家了~~~
[ 本帖最后由 gaohui 于 2009-8-20 09:05 编辑 ] LZ可以去QTP的帮助文档中查看下哪些字符是被正则表达式认为是特殊字符, 由于QTP描述性编程默认是启用正则表达式的,所以属性值中的特殊字符都需要用\来转义.
帮助中相关内容的位置在Contents >HP QuickTest Professional User's Guide > Enhancing Tests > Configuring Values > Defining Regular Expressions
当然也可以在执行该语句前先将禁用对该对象属性启用正则表达式,以前我也都介绍过的,不再啰嗦了 试下这个吧:
JavaWindow("title:=窗口","displayed:=1").JavaButton("关闭\(C\)").Click 父对象用了描述性编程子对象没用.. 谢谢各位!~~
哈哈,可以了!原来需要正则表达式转换!
我好土哦。。。O(∩_∩)O哈哈~
页:
[1]