51Testing软件测试论坛
标题: 无法取得tickets,price和total的控件名称和值 [打印本页]
作者: rcrc 时间: 2007-8-2 16:38
标题: 无法取得tickets,price和total的控件名称和值
关于值的取得,我用了映射,但似乎不是每次都可以读出来,就算读出来了,也返回错误,显示不相等。
具体脚本如下:
set_class_map("ThunderRT6TextBox", "edit");
set_record_attr("ThunderRT6TextBox", "class attached_text", "MSW_id", "location");
set_record_method("ThunderRT6TextBox", RM_RECORD);
set_class_map("ThunderRT6TextBox", "edit");
set_record_attr("ThunderRT6TextBox", "class attached_text", "MSW_id", "location");
set_record_method("ThunderRT6TextBox", RM_RECORD);
# Flight Reservation
set_window ("Flight Reservation", 2);
menu_select_item ("File;Open Order...");
# Open Order
set_window ("Open Order", 1);
obj_mouse_click ("Order No.", 3, 11, LEFT);
edit_set ("ThunderRT6TextBox_2", "4");
obj_mouse_click ("OK", 43, 10, LEFT);
# Flight Reservation
set_window ("Flight Reservation", 12);
edit_set ("ThunderRT6TextBox_9", "2");
obj_mouse_click ("Order Information:", 254, 152, LEFT);
set_window("Flight Reservation", 1);
edit_get_text("ThunderRT6TextBox_9",ThunderRT6TextBox_9);
edit_get_text("ThunderRT6TextBox_10",ThunderRT6TextBox_10);
edit_get_text("ThunderRT6TextBox_11",ThunderRT6TextBox_11);
if (ThunderRT6TextBox_9*ThunderRT6TextBox_10==ThunderRT6TextBox_11)
tl_step("ThunderRT6TextBox_11",0,"总额是正确的,"ThunderRT6TextBox_9"乘以"ThunderRT6TextBox_10"等于"ThunderRT6TextBox_11"");
else
tl_step("ThunderRT6TextBox_11",1,"总额是不正确的,"ThunderRT6TextBox_9"乘以"ThunderRT6TextBox_10"不等于"ThunderRT6TextBox_11"");
脚本执行后的结果信息如附件截图,麻烦哪位DX请分析一下啊,谢。
作者: lantianwei 时间: 2007-8-2 17:02
用edit_get_info ( edit, property, out_value )试下
作者: rcrc 时间: 2007-8-3 09:21
还是不行,名称读不出,报值不正确。
作者: lantianwei 时间: 2007-8-3 09:26
你把$符号先去除了再乘,最后再加上$符号,你试下
作者: rcrc 时间: 2007-8-3 09:50
$符号怎么去?
作者: rcrc 时间: 2007-8-3 10:43
不是$符号的原因,而是金额取出的时候带了“”,是以字符串的形式取出来了,导致结果错误。
但不知道,怎么样将字符串形式的格式转换为int型的?
作者: lantianwei 时间: 2007-8-3 11:10
mm="1234";
printf(2*mm);
TSL不用转换,可直接用!
作者: rcrc 时间: 2007-8-3 12:45
恩,不是“”的原因,那版主知道$怎么去掉吗?
作者: lantianwei 时间: 2007-8-3 12:55
比如你取出来的是"$12.6",把它附给一个变量price
则可以用substr(price,2,4)
作者: rcrc 时间: 2007-8-3 15:07
p=substr(price,2,8);
t=substr(total,2,8);
if (tickets*p==t)
还是会报错,用“add watch”看t的值是带“”的,p的值是正确的,在if (tickets*p==t)中将t用正确的数值代替,测试结果是正确的。
但是,在"tickets"乘以"price"等于"t"中,显示的t值是不带“”的。
不知道是什么原因。
作者: lantianwei 时间: 2007-8-3 16:41
price="$22.5";
total="$45";
tickets=2;
p=substr(price,2,8);
t=substr(total,2,8);
if (tickets*p==t)
pause("right");
else
pause("wrong");
我这里可以的
作者: rcrc 时间: 2007-8-3 17:11
这样是没有问题的,下周再继续,多谢版主啊,好人~~~
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) |
Powered by Discuz! X3.2 |