BS页面上弹出的dialog的描述性编程实现
BS架构,弹出的网页对话框有如下图两种,一种dialog中出现的提示信息有两行,一种是只有一行,用QTP的SPY分别去获取相关的信息可知:对于提示信息只有一行的,对象的TEXT属性值就等于提示信息,但是对于提示信息为两行的,对象的TEXT属性值为“<multi-line> value”,具体情况如图我用描述性编程来实现对两个dialog是否存在进行判断
分别为:
提示信息只有一行的:
If Browser("TITLE:=中国电信安徽分公司客户关系管理系统 V4.8").Dialog("TEXT:=Microsoft Internet Explorer").Static("TEXT:=该客户已有客户密码,但未签订密码协议,请提示让客户签证密码协议!").EXIST Then
MSGBOX 1
ELSE
MSGBOX 2
End If
表明上述的对象存在
提示信息有两行的:
If Browser("title:=安徽电信客户关系管理系统").Dialog("text:=Microsoft Internet Explorer").Static("text:=请先关闭登录界面!然后重新打开IE登录!").exist Then
msgbox 123
End If
表明上述对象不存在,请问问题到底是出在哪里,如何实现对有两行提示信息的DIALOG的判断? 问题在于你用的是描述性编程
这一句:Static("text:=请先关闭登录界面!然后重新打开IE登录!")
已经有两行文案了,这里还用一行去匹配,肯定匹配不到。加个回车符,你再试试。 方法①:
If Browser("micClass:=Browser").Dialog("text:=Microsoft Internet Explorer").Exist(0) Then
wait 1
str = Browser("micClass:=Browser").Dialog("text:=Microsoft Internet Explorer").GetVisibleText
MyArray = Split(str,vbcrlf , -1, 1)
msgbox MyArray(1)
If Replace(MyArray(1)," ","")="XXXXX" then
Browser("micClass:=Browser").Dialog("text:=Microsoft Internet Explorer").WinButton("text:=确定").Click
end if
End If
方法②:
If Browser("micClass:=Browser").Dialog("text:=Microsoft Internet Explorer").Exist(0) Then
wait 1
msgbox Browser("micClass:=Browser").Dialog("text:=Microsoft Internet Explorer").Static("window id:=65535").GetROProperty("regexpwndtitle")
End If 谢谢asoqa和ttyer的回答,这里的确是因为回车符的问题,这里要写成Browser("title:=安徽电信客户关系管理系统").Dialog("text:=Microsoft Internet Explorer").Static("text:=请先关闭登录界面!"&chr(10)&chr(10)&"然后重新打开IE登录!")就可以了
页:
[1]