51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2395|回复: 1
打印 上一主题 下一主题

关于Popup Window Exception Handle的问题

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2005-12-26 15:44:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本人在写一个脚本的时候,碰到一个问题,一直难以理解,特向各位大虾求教.
我的脚本中写了一个Exception Handle Function,结构如下
static function Error_Handler(in window)
{
        extern excp_flag;
        auto err_message;
        CaptureImg(capture_file);
        excp_flag=1;
        if(window=="Error")
        {
                exception_off("Error_handle");
#                 excp_flag=1;
                set_window(window,SYS_EIGHT);
                if(obj_exists("st_message")==E_OK)
                        static_get_text ( "st_message", err_message );
                tl_stepm("Make Subscription",1,"Record execution failed!--in row "& table_Row&",error message:"&err_message);
                button_press ("pb_ok" );
                Cursor_Wait();
                exception_on("Error_handle");
        }
        else if(window=="Edit Pattern Validation Error")
        {
                exception_off("Validation_Error_handle");
#                 excp_flag=1;
                set_window(window,SYS_EIGHT);
                if(obj_exists("st_message")==E_OK)
                        static_get_text ("st_message", err_message );
                tl_stepm("Make Subscription",1,"Record execution failed!--in row "& table_Row&",error message:"&err_message);
                button_press ("pb_ok" );
                Cursor_Wait();
                exception_on("Validation_Error_handle");
        }
        else if(window=="Pop_window")
        {
                exception_off("Popup_Error_handle");
#                 excp_flag=1;
                set_window(window,SYS_EIGHT);
                if(obj_exists("st_message")==E_OK)
                        static_get_text ("st_message", err_message );
                tl_stepm("Make Subscription",1,"Record execution failed!--in row "& table_Row&",error message:"&err_message);
                button_press ("pb_ok" );
                Cursor_Wait();
                exception_on("Popup_Error_handle");
        }
}
exception_off_all();
define_popup_exception("Error_handle","Error_Handler","Error");
define_popup_exception("Validation_Error_handle","Error_Handler","Edit Pattern Validation Error");
define_popup_exception("Popup_Error_handle","Error_Handler","Pop_window");
exception_on("Error_handle");
exception_on("Validation_Error_handle");
exception_on("Popup_Error_handle");
然后在脚本中有一段
edit_set_ex("e_fundcode",Record["I_Fundcode"]);
if (excp_flag==1)
{
       excp_flag=0;
      report_msg("Fund code is not correct");               
      continue;
}
这里edit_set_ex就是往Edit中输入数据,这个时候可能会有Popup Window 出来
当我运行脚本的时候发现,每次popup window出来的时候,Exception Handle函数都能工作
但是就是excp_flag不是1
WinRunner的脚本是异步而不是同步执行的,也就是说edit_set_ex("e_fundcode",Record["I_Fundcode"]);执行了之后
不是先去执行 Exception Handle函数,再执行if (excp_flag==1),而是两者好像同时执行,这就是我感觉到不可理解的地方
如果这样的话,我的脚本里面怎么能够做到出错处理完了之后再根据条件进行下一步的操作呢?
我的WinRunner 是7.5
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2005-12-26 15:51:20 | 只看该作者
忘了加一句
public excp_flag;
已经在脚本的头上声名了
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-26 04:45 , Processed in 0.083857 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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