51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 11712|回复: 28
打印 上一主题 下一主题

[原创] 如何让QTP自动关闭MsgBox

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2007-11-1 16:26:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Dim i
   Dim MyMessage
   
        For i=0 to 5
                If  (i=2) or (i=4)Then
               
rem 这是用来试验循环的一段代码
SystemUtil.Run "C:\Program Files\Mercury Interactive\QuickTest Professional\samples\flight\app\flight4a.exe","","C:\Program Files\Mercury Interactive\QuickTest Professional\samples\flight\app\","open"
Dialog("Login").WinEdit("Agent Name:").Set "admin"
Dialog("Login").WinEdit("Password:").Type "MERCURY"
Dialog("Login").WinEdit("Password:").SetSecure "472927f85bc31f6df9366529bfed91115c9dceb9"
Dialog("Login").WinButton("OK").Click
Window("Flight Reservation").WinMenu("Menu").Select "File;Open Order..."
Window("Flight Reservation").Dialog("Open Order").WinCheckBox("Order No.").Set "ON"
Window("Flight Reservation").Dialog("Open Order").WinEdit("Edit").Set "4"
Window("Flight Reservation").Dialog("Open Order").WinButton("OK").Click
Window("Flight Reservation").WinButton("FLIGHT").Click
Window("Flight Reservation").Dialog("Flights Table").WinButton("OK").Click
Window("Flight Reservation").WinButton("Button").Click
Window("Flight Reservation").WinMenu("Menu").Select "File;Open Order..."
Window("Flight Reservation").Dialog("Open Order").WinCheckBox("Order No.").Set "ON"
Window("Flight Reservation").Dialog("Open Order").WinEdit("Edit").Set "2"
Window("Flight Reservation").Dialog("Open Order").WinButton("OK").Click
Window("Flight Reservation").WinButton("FLIGHT").Click
Window("Flight Reservation").Dialog("Flights Table").WinButton("OK").Click
Window("Flight Reservation").WinMenu("Menu").Select "File;New Order"
Window("Flight Reservation").WinMenu("Menu").Select "File;Exit"

else
         MyMessage=MsgBox("Hello Morgan.D,",65,"MsgBox Example")rem 我想让QTP自动把这个自己设置的对话框给关闭掉,请问用何种方式能成功?
         

End If rem 退出If...then 判断
next

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2007-11-1 17:37:25 | 只看该作者
我也想知道如何用程序来关闭自己定义的msgbox。
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2007-11-1 18:15:35 | 只看该作者

给你个代码参考

Dim res, WSH
Set WSH = CreateObject("WScript.Shell")
res = WSH.Popup("Closed after 2 seconds.", 2)  '代替msgbox "Closed after 2 seconds"
Set WSH = Nothing

不是用msgbox了
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2007-11-1 18:28:22 | 只看该作者

精彩~~~~

呵呵,记得以前见到过同样的问题
找了半天没找到
呵呵,学了一招~~~~
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2007-11-2 10:45:55 | 只看该作者
是啊我也因为这个头疼,学了挺好使的
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2014-11-11 09:38
  • 签到天数: 2 天

    连续签到: 2 天

    [LV.1]测试小兵

    6#
    发表于 2007-11-2 10:58:27 | 只看该作者
    原帖由 木卫十二 于 2007-11-1 10:15 发表
    Dim res, WSH
    Set WSH = CreateObject("WScript.Shell")
    res = WSH.Popup("Closed after 2 seconds.", 2)  '代替msgbox "Closed after 2 seconds"
    Set WSH = Nothing

    不是用msgbox了



    好用!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
    发表于 2007-11-2 13:39:41 | 只看该作者
    QTP自己设置的MSGBOX也是一个对象
    Set Msg=Description.create()
    msg("text").value="MsgBox Example"
    dialog(msg).close
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
    发表于 2007-11-2 15:07:23 | 只看该作者
    好东西
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
    发表于 2007-11-5 13:10:53 | 只看该作者
    用print不行吗?不用msgbox
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
     楼主| 发表于 2007-11-6 13:54:23 | 只看该作者
    原帖由 木卫十二 于 2007-11-1 18:15 发表
    Dim res, WSH
    Set WSH = CreateObject("WScript.Shell")
    res = WSH.Popup("Closed after 2 seconds.", 2)  '代替msgbox "Closed after 2 seconds"
    Set WSH = Nothing

    不是用msgbox了

    很好。我试验了一下,基本上可以说成功了。但是还有一个问题就是,如果你这段代码没有跟上一个Msgbox的话,在运行时会报错误。
    我在下面这段代码前加了这段代码,就没有出错。
    Dim i
    Dim res,WSH
    Set WSH=Createobject("WScript.Shell")
    Set Msg=Description.create()
    For i=1 to 4
       If (i=2) or (i=4) Then
            MyMessage=MsgBox("Hello Morgan.D,",vbOK) 就是这段代码,添加后,就不会报错了。如果不添加,则要象下列抓拍图一样报错
            res = WSH.Popup("Closed after 2 seconds.", 2)  '代替msgbox "Closed after 2 seconds"
            Set WSH = Nothing
       else
           SystemUtil.Run "C:\Program Files\Mercury Interactive\QuickTest Professional\samples\flight\app\flight4a.exe","","C:\Program Files\Mercury Interactive\QuickTest Professional\samples\flight\app\","open"
            Dialog("Login").WinEdit("Agent Name:").Set "admin"
            Dialog("Login").WinEdit("Agent Name:").Type  micTab
            Dialog("Login").WinEdit("Password:").Type "MERCURY"
            Dialog("Login").WinEdit("Password:").SetSecure "472ff7785a1452302b5089fbd42d83c7c005d116"
            Dialog("Login").WinButton("OK").Click
            Window("Flight Reservation").WinMenu("Menu").Select "File;Exit"
           '**********************************************
            MyMessage=MsgBox("Hello Morgan.D,",65,"MsgBox Example")
            msg("text").value="MsgBox Example"
            dialog(msg).close
            '*******************************************
            End If
    Next

    [ 本帖最后由 madwolfer 于 2007-11-6 14:06 编辑 ]

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11#
     楼主| 发表于 2007-11-6 14:04:25 | 只看该作者
    原帖由 loho1968 于 2007-11-2 13:39 发表
    QTP自己设置的MSGBOX也是一个对象
    Set Msg=Description.create()
    msg("text").value="MsgBox Example"
    dialog(msg).close
    Dim i
    Dim res,WSH
    Set WSH=Createobject("WScript.Shell")
    Set Msg=Description.create()
    For i=1 to 4
       If (i=2) or (i=4) Then
            MyMessage=MsgBox("Hello Morgan.D,",vbOK)
             res = WSH.Popup("Closed after 2 seconds.", 2)  '代替msgbox "Closed after 2 seconds"
            Set WSH = Nothing
       else
           SystemUtil.Run "C:\Program Files\Mercury Interactive\QuickTest Professional\samples\flight\app\flight4a.exe","","C:\Program Files\Mercury Interactive\QuickTest Professional\samples\flight\app\","open"
            Dialog("Login").WinEdit("Agent Name:").Set "admin"
            Dialog("Login").WinEdit("Agent Name:").Type  micTab
            Dialog("Login").WinEdit("Password:").Type "MERCURY"
            Dialog("Login").WinEdit("Password:").SetSecure "472ff7785a1452302b5089fbd42d83c7c005d116"
            Dialog("Login").WinButton("OK").Click
            Window("Flight Reservation").WinMenu("Menu").Select "File;Exit"
           '**********************************************
            MyMessage=MsgBox("Hello Morgan.D,",65,"MsgBox Example")
            msg("text").value="MsgBox Example"这段代码在试验时,报错了,具体如抓拍图所示。不明白错误到底错在哪里?还有一个就是msg()里面添加的text这个text代表那个text,是具体指msgbox里面titile的内容,还是就是一个随便定义的一个参数而已?        dialog(msg).close        '*******************************************
            End If
    Next

    [ 本帖最后由 madwolfer 于 2007-11-6 14:07 编辑 ]

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12#
    发表于 2007-11-21 09:56:45 | 只看该作者
    好东西,又学了两招。谢谢了。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    13#
    发表于 2007-11-21 16:33:51 | 只看该作者
    这错的方法。。呵呵。。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    14#
    发表于 2007-11-22 10:29:59 | 只看该作者

    回复 10# 的帖子

    那是你在i=2时已经执行了Set WSH = Nothing,因此在i=4时就出错了
    将Set WSH = Nothing移到循环外面就可以了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    15#
    发表于 2007-11-22 20:22:20 | 只看该作者
    顶!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    16#
    发表于 2007-11-23 10:19:55 | 只看该作者
    有用啊
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2015-2-26 08:31
  • 签到天数: 2 天

    连续签到: 2 天

    [LV.1]测试小兵

    17#
    发表于 2007-11-23 18:42:09 | 只看该作者
    有用
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    18#
    发表于 2008-1-24 17:17:01 | 只看该作者
    还是没解决关闭Msgbox
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    19#
    发表于 2008-1-24 18:57:06 | 只看该作者

    给你个简单的函数

    '***************************************************
    'msgbox information within time
    '***************************************************
    Public Function MsgBoxTimeout (Text, Title, TimeOut)
           Set WshShell = CreateObject("WScript.Shell")
           WshShell.Popup Text, TimeOut, Title
    End Function

    [ 本帖最后由 three116 于 2008-1-24 18:58 编辑 ]
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    20#
    发表于 2008-1-25 11:12:10 | 只看该作者
    不就是帮助文档中的东西嘛.........
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-6-23 05:28 , Processed in 0.088381 second(s), 29 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表