51Testing软件测试论坛

标题: 请问如何获取弹出提示窗口中的内容? [打印本页]

作者: bunny    时间: 2005-10-18 15:51
标题: 请问如何获取弹出提示窗口中的内容?
WR中用数据驱动来输入信息,当输入的信息为无效信息时,会弹出输入无效的信息,想把弹出的提示内容Report_msg("")至报告中,请问可以通过什么方法来获取弹出提示窗口中的内容?
作者: willcheung    时间: 2005-10-18 17:30
set_window("提示窗口逻辑名", 1);
obj_get_text("staticname", text);
report_msg(text);
作者: bunny    时间: 2005-10-18 17:39
谢谢楼上,我试试
作者: bunny    时间: 2005-10-18 20:44
TO: willcheung
按你所说的发下处理:
set_window("提示窗口逻辑名", 1);
obj_get_text("staticname", text);
report_msg(text);
得到的Report_msg(text)信息,并非实际弹出的提示内容(与第一次输入不合法数据的提示信息一样,实际上两种无效输入的提示内容是不一样的);不同的提示信息窗口“staticname”不一样?如果是这样的话,该如何处理
作者: willcheung    时间: 2005-10-19 08:46
不是吧,应该会是一样的。就算按你说的staticname不一样的话,提示信息窗口总是相同的吧,你可以得到整个提示窗口的信息,再把你想要的那部分截取出来不就好拉
作者: bunny    时间: 2005-10-19 09:23
提示信息内容不一样,所以用这种方法处理不行
作者: aswoon911    时间: 2005-10-19 10:50
要不参考一下这个:

http://bbs.51testing.com/viewthr ... ge=1&highlight=
作者: bunny    时间: 2005-10-19 11:42
谢谢aswoon911的建议,我试试看 :)
作者: bunny    时间: 2005-10-19 15:42
define_popup_exception("close_msg","close_error_msg","Flight Reservations");
                       
public function close_error_msg()
{
                       
     set_window("Flight Reservations");
     report_msg("Please enter a flight date" );
     win_close("Flight Reservations");
}
                       
exception_on("close_msg");
用上述脚本来关闭弹出的错误提示信息;录制脚本完成后,且在脚本中加入对弹出错误提示窗口的处理,再回放录制的脚本,正常;但对脚本中输入的信息建立数据驱动的后,再运行录制的脚本,老提示有语法错误,不知谁有遇到这样的情况,但如果把上述脚本剪切,再检查无语法错误,难道上述处理不能包含在数据驱动内吗?
有谁能解释下吗?
作者: aswoon911    时间: 2005-10-19 16:38
有点看不懂,能否详细说明,你的数据驱动和关闭窗口之间如何关联,必要的话贴你的脚本来.
作者: bunny    时间: 2005-10-20 09:09
table = "date.xls";
rc = ddt_open(table, DDT_MODE_READ);
if (rc!= E_OK && rc != E_FILE_OPEN)
        pause("Cannot open table.");
ddt_get_row_count(table,table_RowCount);
for(table_Row = 1; table_Row <= table_RowCount; table_Row ++)
{
        ddt_set_row(table,table_Row);
       
       
       
       
# Flight Reservation
   set_window ("Flight Reservation", 13);
   menu_select_item ("File;New Order");
  edit_set ("Date of Flight:", ddt_val(table,"Date_of_Flight"));
  report_msg("Date of Flight:" &ddt_val(table,"Date_of_Flight") );
               
define_popup_exception("close_msg","close_error_msg","Flight Reservations");
                       
public function close_error_msg()
{
                       
        set_window("Flight Reservations");
        report_msg("please try again!Date of  Flight is unavailable" );
        win_close("Flight Reservations");
}
                       
exception_on("close_msg");

               
               
list_select_item ("Fly From:", "Denver");  # Item Number 0;

       
       
  # Flight Reservation
   set_window ("Flight Reservation", 7);
   menu_select_item ("File;Exit");
       
}
ddt_close(table);
运行这段代码时,老提示有语法错误,我仔细检查过没有语法错误,不知什么原因?如果把粗体部分的脚本去掉,就没有语法错误了,请问是什么原因呢?帮忙分析下。
作者: aswoon911    时间: 2005-10-20 10:50
试试把:
         
define_popup_exception("close_msg","close_error_msg","Flight Reservations");
                        
public function close_error_msg()
{
                        
        set_window("Flight Reservations");
        report_msg("please try again!Date of  Flight is unavailable" );
        win_close("Flight Reservations");
}
                        
exception_on("close_msg");

挪到脚本最前面,不要放在for循环里
作者: bunny    时间: 2005-10-20 11:42
谢谢 aswoon911
:)
这样处理就行了,但这段脚本为什么不能放在FOR循环内呢?
作者: aswoon911    时间: 2005-10-20 11:55
那是因为public function close_error_msg()这个function被重复定义,WR在编译时发现错误导致.

一般说,这样的recovery scenario 都是把define和 function放在脚本前面,在具体需要实现时再调用exception_on.

这样一来维护起来方便,二来思路清晰.

[ Last edited by aswoon911 on 2005-10-20 at 11:56 ]
作者: bunny    时间: 2005-10-20 12:20
明白了,再次谢谢aswoon911
作者: 双面人    时间: 2007-11-23 17:36
我也明白了
作者: Iris0922    时间: 2013-8-20 17:10
图片上的staticname名称,是从哪里来的啊?
我的窗体gui如下:
信息
{
class: window,
label: "信息"
}



如果我要获取信息窗体里面的信息,我的脚本代码该如何写呢?请各位高手指教,非常感谢!




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2