51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

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

[求助] 高手指点:对话框点不掉的问题

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2009-7-23 17:14:03 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
HI,各位:
    近日,偶会遇到一个问题,QTP明明已经对按钮执行了Click操作(从Report里可看出,见附图),但页面上的对话框还是存在,就像未执行click一样,脚本如下:
       If  Browser("信用卡支付").Dialog("安全警报").Exist(3) Then   
          Browser("信用卡支付").Dialog("安全警报").WinButton("是(Y)").Click
      End If
   脚本的本意是判断“安全警报”对话框如果存在,则点击对话框上面的“是”按钮,关闭对话框。但在脚本多次重复运行时,就会出现几次QTP执行了Click操作,但对话框还是没有关闭的情况。  这个问题是不是QTP的Bug啊,我的版本是9.2的。
不知各位高手有没有遇到此类情况,怎么解决呢。

说明一点:可以确定每次运行..Dialog("安全警报").Exist(3)返回是True,即都进入了这个If语句内,也执行了Click操作。

[ 本帖最后由 andyzlp232 于 2009-7-23 18:07 编辑 ]

本帖子中包含更多资源

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

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

使用道具 举报

该用户从未签到

29#
 楼主| 发表于 2009-8-25 14:30:41 | 只看该作者

回复 28# 的帖子

我用
While ...Exist(3)
     ...("确定").Click
Wend
去解决,虽然这个方法比较的笨,但效果很好
回复 支持 反对

使用道具 举报

该用户从未签到

28#
发表于 2009-8-7 16:58:32 | 只看该作者
我也越到类似的问题
使用的也是QTP9.2
自动化运行的时候,有时候执行,有时候无法执行。。。

lz解决了吗?
回复 支持 反对

使用道具 举报

该用户从未签到

27#
发表于 2009-8-7 13:49:54 | 只看该作者
原帖由 shanxi 于 2009-8-7 12:46 发表
LS的那个图标使我发现了有

悠嘻猴

这个表情耶


一片春愁待酒浇,江上舟摇,楼上帘招。秋娘渡与泰娘桥。风又飘飘,雨又萧萧。
                                           人渣陈绍英
何日归家洗客袍?银字笙调,心字香浇。流光容易把人抛,红了樱桃,绿了芭蕉。

你的签名怎么那么绕口呢。
回复 支持 反对

使用道具 举报

该用户从未签到

26#
发表于 2009-8-7 12:46:41 | 只看该作者
LS的那个图标使我发现了有

悠嘻猴

这个表情耶
回复 支持 反对

使用道具 举报

该用户从未签到

25#
发表于 2009-8-7 11:52:57 | 只看该作者
Extern.Declare miclong,"SendMessage","user32.dll","SendMessage",micHwnd ,miclong,miclong,miclong
h= Browser("信用卡支付").Dialog("安全警报").WinButton("是(Y)").GetROProperty("hwnd")
Browser("信用卡支付").Dialog("安全警报").active
WM_LBUTTONDOWN   =   &H0201
WM_LBUTTONUP   =   &H0202  
Extern.SendMessage h,WM_LBUTTONDOWN,0,0
Extern.SendMessage h,WM_LBUTTONUP,0,0


::yiwusuoyou::: 想做好自动化,就要学好win32 api

[ 本帖最后由 假装不在 于 2009-8-7 11:54 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

24#
发表于 2009-8-6 21:45:10 | 只看该作者
建议用lowlevel模式去执行以下,确定是没点到,或者点了但没用
回复 支持 反对

使用道具 举报

该用户从未签到

23#
 楼主| 发表于 2009-8-6 17:34:30 | 只看该作者
原帖由 kings727 于 2009-7-29 09:37 发表
1、 如果按你说的“但在脚本多次重复运行时,就会出现几次QTP执行了Click操作,但对话框还是没有关闭的情况。 ”
而且测试报告上也显示,CLICK操作是做了。
这样说:脚本录制是没有问题的,因为从你的测试报告上来 ...


不是Wait能解决的,因为我单步调试时也有时会出现脚运运行过了,按钮还是点不掉的情况

我用了个最狠的方法
While Browser("..").Dialog("..").Exist(3)
Browser("..").Page("..").WinButton("..").Click
Wend
直到点掉为止

[ 本帖最后由 andyzlp232 于 2009-8-6 17:37 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

22#
 楼主| 发表于 2009-8-6 17:26:14 | 只看该作者
多谢liujinkui 、hugh007提供的思路。
不过这个ClickObject(WB_ATTENDANCEREPORTLIST_SAVEFILE)方法 我不清楚,能否指点下。

[ 本帖最后由 andyzlp232 于 2009-8-6 17:31 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

21#
发表于 2009-7-31 15:58:15 | 只看该作者

回复 20# 的帖子

如果是焦点问题,那么这才是最简单的办法
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2016-8-25 11:11
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    20#
    发表于 2009-7-31 13:03:11 | 只看该作者

    加个激活

    If  Browser("信用卡支付").Dialog("安全警报").Exist(3) Then   
              Browser("信用卡支付").Dialog("安全警报").active
              Browser("信用卡支付").Dialog("安全警报").WinButton("是(Y)").Click
          End If
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    19#
    发表于 2009-7-31 12:08:38 | 只看该作者
    原帖由 hugh007 于 2009-7-30 15:37 发表
    其实是焦点的问题,当前焦点不在对话框上 而是在之前的页面上。
    我的解决方法是:
       
       nReturn = nReturn + ClickObject(WB_ATTENDANCEREPORTLIST_SAVEFILE)

       If WB_ATTENDANCEREPORTLIST_SAVEFILE.Exist ...

    如果是焦点的话,那QTP 如何在之前的页面上找到  WinButton("是(Y)")这个按钮的呢?
    而且从楼主给出的测试报告的图上,看出是在这个按钮上执行了CLICK的操作的。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    18#
    发表于 2009-7-30 15:37:05 | 只看该作者
    其实是焦点的问题,当前焦点不在对话框上 而是在之前的页面上。
    我的解决方法是:
       
       nReturn = nReturn + ClickObject(WB_ATTENDANCEREPORTLIST_SAVEFILE)

       If WB_ATTENDANCEREPORTLIST_SAVEFILE.Exist(1) Then
         nReturn = nReturn + ClickObject(WB_ATTENDANCEREPORTLIST_SAVEFILE)
       End If

    第一次点击保存按钮如果成功,不过if中的第二次点击;
    如果不成功,焦点转移到了对话框上,第二次点击一定就可以点到了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    17#
    发表于 2009-7-29 09:37:28 | 只看该作者
    1、 如果按你说的“但在脚本多次重复运行时,就会出现几次QTP执行了Click操作,但对话框还是没有关闭的情况。 ”
    而且测试报告上也显示,CLICK操作是做了。
    这样说:脚本录制是没有问题的,因为从你的测试报告上来看,QTP找到了这个按钮,并且做了CLICK的操作。
    2、那么就有可能是软件本身的问题。也就是点击了没有反应。
    建议你对这个按钮做一个压力测试看看或者延长WAIT的时间。
    QTP运行的速度是很快,至少比人反映快的多,按钮一出来就做操作了。
    问题可能出在这里,软件没有对这个操作做出反应。

    [ 本帖最后由 kings727 于 2009-7-29 09:39 编辑 ]
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    16#
    发表于 2009-7-28 16:27:47 | 只看该作者
    wwww
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    15#
    发表于 2009-7-28 16:20:19 | 只看该作者

    回复 14# 的帖子

    用个WHILE循环下吧,起码可以WORKROUND
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    14#
     楼主| 发表于 2009-7-28 14:04:02 | 只看该作者

    回复 11# 的帖子

    加Wait,我曾试过,没有用。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    13#
    发表于 2009-7-28 11:36:04 | 只看该作者
    这个问题我也遇到过,没解决。因为能点掉的情况还是多些。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12#
    发表于 2009-7-27 23:18:38 | 只看该作者
    结果没有报错加wait肯定没用
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11#
    发表于 2009-7-27 21:30:11 | 只看该作者

    回复 6# 的帖子

    解决没?不好意思,是我没看清楚你的问题,还以为你每次都没有点击掉。
    如果用WAIT可以解决,那么增加EXISTS的时间应该也行

    [ 本帖最后由 lantianwei 于 2009-7-27 21:32 编辑 ]
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-16 11:54 , Processed in 0.088774 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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