51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3665|回复: 8
打印 上一主题 下一主题

如何判断一个窗口中按钮是“yes”还是“ok”?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2006-11-30 12:59:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
if(win_exists("提示", 2)==E_OK)
      {
       set_window ("提示", 5);
          if(("Yes")==E_OK)--我想表达的意思是:如果窗口“提示”中的按钮是“yes”,那么就点击“yes”按钮。如果是“ok”按钮,那么就点击“ok按钮。请教大虾,这个判断条件该如何写呢?”
             {
              button_press ("Yes");
           }
          else
                 button_press ("OK");
    }
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2006-11-30 13:42:30 | 只看该作者
LZ用Bitmap checkpoint for object/window功能,插入检测点。
if(obj_check_bitmap("yes","imp1",3)==E_OK)
{
#spy一下窗口属性
set_window("")
button_press("yes");
}
else
{
set_window("")
button_press("OK");
}
LZ试一下哈,我也是新手,呵呵。

[ 本帖最后由 cybercop 于 2006-11-30 13:45 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2006-11-30 16:27:09 | 只看该作者
可能我的意思没有表达清楚,请大家看一下图片

yes图片在Ok图片之前。二者的窗口属性是一样的,都是“提示”窗口。

yes图片根据条件有时会弹出,有时不会弹出。Ok图片肯定会弹出,即无论前面是否有弹出yes图片,ok都会出来。


我所想要的是,当弹出yes的窗口时,就会点击yes按钮。当弹出Ok窗口时,就会点击Ok按钮。


楼上的二位大虾提出的办法,我试了一下,但是用检查点的方法if(obj_check_bitmap("yes","imp1",3)==E_OK)一定要获得"yes"按钮的窗口才可以。而yes按钮是不一定出现的。如果出现了OK按钮,那么这个if的语句就行不通了。

我试了用取得按钮上文字的方法,obj_get_text("Yes",v_button);用printf(v_button)是可以打印出取到的文字。但应用到  if(obj_get_text("Yes", v_button)==Yes)的时候,v_button却会取到空值。也根本无法执行这个判断语句。且也是要获得"yes"按钮的窗口才可以。

第三中的方式,按钮的label属性改成通配符,yes按钮的属性是
{
class: push_button,
label: Yes
}

Ok按钮的属性是:没有label
{
class: push_button
}
两个按钮的属性不一样,不能改为通配符呀

[ 本帖最后由 queen 于 2006-12-6 12:36 编辑 ]

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2006-11-30 18:04:31 | 只看该作者
多谢大虾的提醒,捕捉了提示窗口的文字,终于成功了。但我以下的奇怪现象,wr对于字符不认识,对于中文会认识?请看如下的脚本,第二个脚本是可以运行的。即if判断语句可以执行。


win_get_text("提示", text1, 59, 91, 146, 120); #  Yes
if(win_exists("提示", 2)==E_OK)
      {
       set_window ("提示", 5);
         if(text1=="Yes")--匹配不到
             {
              button_press ("Yes");
          }
          else
             {   
       set_window ("提示", 5);
        button_press ("OK");
    }
    }
   
win_get_text("提示", text, 128, 41, 188, 64); # 未清洁房
if(win_exists("提示", 2)==E_OK)
      {
       set_window ("提示", 5);
         if(text=="未清洁房")--可以匹配成功
             {
              button_press ("Yes");
          }
          else
             {   
       set_window ("提示", 5);
        button_press ("OK");
    }
    }

[ 本帖最后由 queen 于 2006-11-30 18:06 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2006-12-1 09:31:26 | 只看该作者
我用printf();查看捕捉到的“text1”的值,是正确的,是等于"Yes"。

但“text1”运用到 if(text1=="Yes")语句中,就认不到,跳到else去了。
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2006-12-1 10:53:02 | 只看该作者
调试了脚本,text1值一直没有变,都是text1:"Yes"
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2006-12-1 11:48:45 | 只看该作者
可以了!非常感谢解开了我的疑惑。 sdlkfj3

用win_get_text("提示", text1, 59, 91, 146, 120); #  Yes取到的" yes"前面确实有个空格! 

我有试过将观察点取到的值text1:"Yes"或者pintf()打印出来的值直接复制到if语句里面也不行。看来要手工在if语句yes前面里输入一个空格才行。
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2006-12-4 17:43:02 | 只看该作者
如果使用button_get_info可能会好点!
回复 支持 反对

使用道具 举报

该用户从未签到

9#
 楼主| 发表于 2006-12-6 12:34:55 | 只看该作者
button_get_info ( button, property, out_value );

也必须得到button的逻辑名或物理描述,在我录制的应用程序中,button yes 或者button OK
是不一定哪个先出现的。 这样button的值就不知道要填yes还是ok。
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-24 17:00 , Processed in 0.074460 second(s), 29 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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