[ Last edited by qaalex on 2005-3-28 at 11:32 ]作者: shyfish 时间: 2005-3-28 12:14
给你个例子:
public function StatusShow(in win, in obj, in attr, in val)
{
if(val == "!Calling.*")
{
tl_step("Status show", 0, "Calling.");
callStatus = "calling";
}
exception_off("ConnectStatus");
}
#================= function DefineCallException( ) =====================
public function DefineCallException( )
{
define_object_exception("ConnectStatus", "StatusShow",
"PeerCall", "ShowMsg", "label", "!Calling.*");
exception_on("ConnectStatus");
}
含义参考TSL Reference。注意,define_object_exception里的属性,这里是”label”属性,必须是GUI file里这个object所没有的,否则编译通不过。
另:Virtual Object应该是不可以吧,因为用它都不可以get info作者: qaalex 时间: 2005-3-28 14:27
“define_object_exception”里面的“property”属性有什么作用的?
能定义object中任意的property吗?作者: shyfish 时间: 2005-3-28 15:26
An object exception event is a change in the property value of an object that causes an interruption in the WinRunner test. The value parameter is optional. If you do not specify the value, the exception is defined to detect any change from the current property value. In this case, the object must appear when you define the exception.
Note that the property you specify for the exception cannot appear in the object's physical description in the GUI map.
从Reference里抄的
1.Property是exception进行判断的对象,即根据这个属性的变化来触发exception
2.应该是可以使用所有的属性。但是显然对于那些没有变化的属性,比如控件的位置之类的使用是没意义的,因为没有变化,也就不会去触发这个exception了。而且好像使用也有比较多的限制,我就试过对某个label的变化的exception,也得到了效果,而且可以定义多个期望的value,这样就可以根据不同的值来进行不同的操作了,这比自己定义一个循环来判断要好多了,当然,其实用synchronization也是可以的。不知道你要怎样的exception作者: zamaz 时间: 2005-3-29 09:41
厉害,先试一下!