生如火花 2004-11-23 23:12
[原创]在WR7.6里对异常窗口的一种解决方法
类似7.0的异常处理功能,7.6把exception handling做成了函数,对于一个我们能肯定它会出现,但不知道它什么时候会出现的窗口,在脚本中可以用exception进行解决
假设异常的窗口是QQ程序,首先保证GUI MAP Editor能把窗体learn到。
在map里,它是
{
class: window,
label: " ",
MSW_class: "#32770"
}
先把窗体的logical name改成win_qq,
然后添上这么一段脚本:
##如果QQ启动了,就关闭它
define_popup_exception ("closetheqq","close_qq", "win_qq" );
public function close_qq()
{
set_window("win_qq",3);
win_close("win_qq");
}
exception_on("closetheqq");
这样,一旦出现了QQ的窗口,WR就会自动的关闭他,这与7.0里的异常处理是有相通处的。并且,你可以在close_qq这样的函数里添加标记,记录出错次数。然后用report报告出来
sunhongdongkun 2004-12-8 09:04
呵呵 好东西
fzyerma 2004-12-8 20:25
不错
willcheung 2005-1-18 12:28
我试了怎么不行啊?
define_popup_exception ("closethemb","close_mb", "**计算软件" );
public function close_mb()
{
set_window("**计算软件",3);
win_close("**计算软件");
}
exception_on("closethemb");
我执行后**计算软件窗口没有关掉阿,但是我仅执行以下语句时可以关掉该窗口
set_window("**计算软件",3);
win_close("**计算软件");
请问,define_popup_exception()监测异常窗口并处理,到底是怎么用的?起什么作用?
shyfish 2005-1-18 12:58
正常,因为它叫popup,所以,只有在这个窗口弹出之前加上exception_on才能生效,你窗口都出来了才执行exception_on,叫它怎么执行呢?应该这样:
1。定义
2。加上exception_on语句
3。打开窗口,结果就自动关闭了
。。。。。。
生如火花 2005-1-18 14:56
注意脚本位置,TSL是从上执行到下的。这个处理只对它后面发生的动作起作用
willcheung 2005-1-18 16:03
Success!!哈哈,谢谢!!今天我都在看你的贴,以后有什么不懂的请多多指教哦
dyjyhx 2005-1-20 10:37
没有看明白。请高手在指点一、二。先谢谢了
类似7.0的异常处理功能,7.6把exception handling做成了函数,对于一个我们能肯定它会出现,但不知道它什么时候会出现的窗口,在脚本中可以用exception进行解决
假设异常的窗口是QQ程序,首先保证GUI MAP Editor能把窗体learn到。
在map里,它是
{
class: window,
label: " ",
MSW_class: "#32770"
}
先把窗体的logical name改成win_qq,
然后添上这么一段脚本:
##如果QQ启动了,就关闭它
define_popup_exception ("closetheqq","close_qq", "win_qq" );
public function close_qq()
{
set_window("win_qq",3);
win_close("win_qq");
}
exception_on("closetheqq");
这样,一旦出现了QQ的窗口,WR就会自动的关闭他,这与7.0里的异常处理是有相通处的。并且,你可以在close_qq这样的函数里添加标记,记录出错次数。然后用report报告出来
----------------------------------------------------------------------
这里提到的“假设异常的窗口是QQ程序,首先保证GUI MAP Editor能把窗体learn到。 ”learn窗体是learnQQ出现异常的哪个窗体还是QQ本身的窗体?
还有注释中说道##如果QQ启动了,就关闭它
这个启动是QQ程序启动了,还是QQ异常窗口启动了?
dyjyhx 2005-1-20 10:41
willcheung,能把你成功的脚本贴出来吗?谢谢了。
生如火花 2005-1-20 16:32
这说的是把QQ程序看做是异常出现的窗口
dyjyhx 2005-1-21 10:28
我找一个异常窗口试试看,先谢谢了
dyjyhx 2005-1-21 11:18
代码是不是应该这样
# Flight Reservation
win_activate ("Flight Reservation");
set_window ("Flight Reservation", 2);
define_popup_exception ("closethe_Open_Order","close_Open_Order", "Open Order" );
exception_on("closethe_Open_Order");
# Open Order
menu_select_item ("File;Open Order...");
public function close_Open_Order()
{
set_window("Open Order",3);
win_close("Open Order");
}
在执行后,有时会关不掉Open Order窗口,结果中显示closethe_Open_Order找不到。但有时能关掉,这是什么原因。请高手指点
dyjyhx 2005-1-21 11:39
Windows弹出的异常窗口,象什么“指令错误,内存不能为“Read””的那种异常窗口,WinRunner就不能Learn它的窗口,还能用这种方法处理吗?
dyjyhx 2005-1-24 14:05
楼主怎么不来看一看呀?
生如火花 2005-1-24 15:26
我说了,前提是WR能learn到这个窗口,不能learn的不可以用这个方法解决。
生如火花 2005-1-24 15:30
[quote]Originally posted by [i]生如火花[/i] at 2005-1-18 02:56 PM:
注意脚本位置,TSL是从上执行到下的。这个处理只对它后面发生的动作起作用 [/quote]
[quote]
在执行后,有时会关不掉Open Order窗口,结果中显示closethe_Open_Order找不到。但有时能关掉,这是什么原因。请高手指点
[/quote]
确认一下情况。
dyjyhx 2005-1-24 15:44
谢谢楼主,明白了
mojinde 2005-1-25 15:50
请问楼主
如果那个异常窗口learn不到的话,也就是在测试时,并不能预知异常窗口的出现,又用什么方法呢?谢谢指教!
生如火花 2005-1-25 16:31
我不是神
mojinde 2005-1-25 17:05
生如火花,我知道你行的:p,谢谢这段时间以来,你给我的帮助,真的很感谢。
[[i] Last edited by mojinde on 2005-1-25 at 17:08 [/i]]
hihihaha910 2005-8-13 09:32
生如火花最近去哪里了?怎么都没声音了,我们需要你~
yangkinki 2005-8-16 17:16
不错,学习到异常处理
PK_DUTBSK 2005-8-17 09:42
问个问题 : 如果GUI MAP Editor不能把窗体learn到 怎么办?
kelly651 2005-8-25 14:24
期望有更多的这方面的脚本代码贴出来.....
bugweb 2006-6-7 14:17
厉害
不错,受益匪浅
ljy 2006-6-13 15:49
又长知识了~~~~~
nkillers 2006-6-26 16:23
peifu !~~~~~~~~~~~~~~~~
xihong2004 2006-9-10 12:59
高,学到一招
84554577 2006-10-25 17:08
上面的我好像没有弄懂呢?
因为代码就那点点,我一执行马上都跑完了!他怎么来关闭我的QQ呀!
不管我的QQ是在什么时候打开,都没有被关闭!所以请高手指点!
xiaogougou 2006-12-1 10:07
[quote]原帖由 [i]84554577[/i] 于 2006-10-25 17:08 发表
上面的我好像没有弄懂呢?
因为代码就那点点,我一执行马上都跑完了!他怎么来关闭我的QQ呀!
不管我的QQ是在什么时候打开,都没有被关闭!所以请高手指点! [/quote]
你可以在楼主的代码后面加一句
wait(10);
执行程序后马上就打开QQ,程序就会关闭QQ了。因为这个捕捉异常是在脚本运行过程中捕捉的
,如果不加别的代码,等程序都执行完了,QQ还没出现,当然捕捉不到了。
yy100t 2008-6-19 15:57
路过 来学习的 看得晕忽忽的:'(
页:
[1]