51Testing软件测试论坛

标题: BS页面上弹出的dialog的描述性编程实现 [打印本页]

作者: 隐形人    时间: 2009-1-4 18:46
标题: 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的判断?
作者: asoqa    时间: 2009-1-4 20:34
问题在于你用的是描述性编程
这一句:Static("text:=请先关闭登录界面!然后重新打开IE登录!")
已经有两行文案了,这里还用一行去匹配,肯定匹配不到。加个回车符,你再试试。
作者: ttyer    时间: 2009-1-5 04:19
方法①:

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
作者: 隐形人    时间: 2009-1-6 11:52
谢谢asoqa和ttyer的回答,这里的确是因为回车符的问题,这里要写成Browser("title:=安徽电信客户关系管理系统").Dialog("text:=Microsoft Internet Explorer").Static("text:=请先关闭登录界面!"&chr(10)&chr(10)&"然后重新打开IE登录!")就可以了




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