51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 5859|回复: 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空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2009-7-23 18:03:34 | 只看该作者
因为Browser("信用卡支付").Dialog("安全警报").Exist(3) 有可能会返回false,所以那句click的操作就不会被执行了。
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2009-7-23 18:08:46 | 只看该作者
原帖由 dreamever 于 2009-7-23 18:03 发表
因为Browser("信用卡支付").Dialog("安全警报").Exist(3) 有可能会返回false,所以那句click的操作就不会被执行了。


我十分确定进入了IF语句内。也执行了Click操作。
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2009-7-23 18:10:21 | 只看该作者
可能是QTP的bug,换成键盘输入吧。
Browser("信用卡支付").Dialog("安全警报").WinButton("是(Y)").Type micReturn
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2009-7-23 18:11:33 | 只看该作者
我是觉得QTP应该确实进行了点击操作(这里的点击操作应该是通过发送WINDOWS消息实现的),只是Browser("信用卡支付").Dialog("安全警报").WinButton("是(Y)")这个按钮不接受QTP给它发送的这个消息 这主要应该是出于安全的考虑而这样设计的
LZ试下CLICK后面加个坐标值 比如click(1,6,6)
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2009-7-24 17:31:41 | 只看该作者

回复 5# 的帖子

你说的观点我不是很认同,因为如果WinButton("是(Y)")这个按钮不接受QTP给它发送的这个消息,那么前面几次应该也是点不掉的。。
现在的情况是有时候QTP能点掉,有时却是点不错。。很郁闷
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2009-7-24 17:35:51 | 只看该作者
原帖由 andyzlp232 于 2009-7-24 17:31 发表
你说的观点我不是很认同,因为如果WinButton("是(Y)")这个按钮不接受QTP给它发送的这个消息,那么前面几次应该也是点不掉的。。
现在的情况是有时候QTP能点掉,有时却是点不错。。很郁闷


在这个点击之前加一个wait(1) 试试
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2009-7-24 21:27:12 | 只看该作者
学习了
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2009-7-27 00:56:18 | 只看该作者
恩,我感觉也是在点击之前要wait 一下,可能
你这个对话框弹出的时间可能程序区判断个东西延后了
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2009-7-27 00:57:12 | 只看该作者
因为网络或者系统的环境每时每刻都不一样
导致延迟的时间不同,所以你有时候点击的到有时候点击不到
所以适当放长的时间去wait
回复 支持 反对

使用道具 举报

该用户从未签到

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

回复 6# 的帖子

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

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

使用道具 举报

该用户从未签到

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

使用道具 举报

该用户从未签到

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

使用道具 举报

该用户从未签到

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

回复 11# 的帖子

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

使用道具 举报

该用户从未签到

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

回复 14# 的帖子

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

使用道具 举报

该用户从未签到

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

使用道具 举报

该用户从未签到

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

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

使用道具 举报

该用户从未签到

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中的第二次点击;
如果不成功,焦点转移到了对话框上,第二次点击一定就可以点到了
回复 支持 反对

使用道具 举报

该用户从未签到

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的操作的。
回复 支持 反对

使用道具 举报

  • 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
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-27 09:51 , Processed in 0.078262 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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