51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2955|回复: 5
打印 上一主题 下一主题

[Robot] 请问如何验证有不知名的窗口存在

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2007-5-24 11:37:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我想做一个SCRIPT能够实现下面的功能:
应用程序在中间某个步骤停下来fail了以后,script会接着跑后面的case, 这样的话,在再次打开应用程序之前,我想先把前面打开的多个窗口关闭,但是如何确定前面打开了多少个窗口呢? 我知道只需要做一个循环然后用Windows CloseWin, "", "" 把窗口关掉.问题在于,我该如何验证这些窗口的存在以确定循环的条件.

希望大家能够和我一起思考这个问题.谢谢了
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2007-5-24 14:30:50 | 只看该作者
通过SQAFindObject或者SQAGetProperty或者WindowVP判断窗口是否存在

例子1
result = WindowVP (Exists, "Caption=记事本,"VP=Window Existence;Wait=1,1")
记事本窗口存在返回值为1,通过判断result返回值

例子2
If SQAFindObject("Type=Window;Caption=记事本") = sqaSuccess Then
            
End If      
等于sqaSuccess表明窗口存在
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2007-5-24 22:42:04 | 只看该作者
问题是,我需要在不知道打开了什么窗口的情况下,把这个窗口关闭. 目的是为了在前面的case中断之后,后面的case开始测试之前做关闭所有窗口的清理工作. 而前面的case在那一步出错打开了哪些窗口以后停下来,我是不知道的. 那么怎么把这些窗口关闭呢?
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2007-5-24 22:43:24 | 只看该作者
也就是说,窗口的caption未知
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2007-5-24 22:49:47 | 只看该作者
我已经想好逻辑了,但是在第一步就卡住了

1. 获取当前窗口的caption
2.下面循环
if caption<>null and caption<>"C:\Windows\...." then        '"C:\Windows\...."这个caption是命令行窗口的,我不希望把命令行窗口关闭.
       Close the window with this caption
   end if

第一步怎么办呢?当前窗口是dialog0,dialog1.....也不确定的
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2007-5-25 10:51:26 | 只看该作者
方法一:
1:返回上次使用过的窗口,用组合键ALT 和TAB,:InputKeys "%{TAB}"

2:用SQAWaitForPropertyValue函数判断当前切换到的窗口是不想关掉的窗口(注意robot窗口的状态),就最小化,否则,直接关掉(用组合键ALT+F4,这样的话就不需要知道当前是什么窗口了) ,返回第1步。

方法二:
1:用Window ResetTestcontext, "", ""激活所有的窗口
2 再用SQAFindObject找到不想关闭的窗口,将其最小化,然后利用组合键ALT+F4关掉当前处于激活状态的窗口(注意robot窗口的状态),
3:每关掉窗口一次,判断一下是否到了桌面状态

方法三:
1:打开任务管理器,一个一个的关掉,如果是自己不想关掉的,光标则往下移动,方法类似于方法一.
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-24 23:05 , Processed in 0.073958 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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